我有一个大型数据库,我正在运行一个vba脚本,以便创建许多不同的工作簿,这些工作簿只包含完整数据库中的一些示例数据。这很好用,我使用矩阵来获取所有相关条目,然后将整个矩阵粘贴到新工作簿的定义范围内(而不是逐个单元格从一个工作表复制到另一个工作表)。我现在的问题是我需要为条件格式添加两条规则。
我正在寻找以下内容:
Application.Worksheets("Database").Cells(k, ColumnOfInterest).Select
With Selection
.FormatConditions.Delete
.FormulaR1C1 = "=RC[-3] =""A"""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(1).Interior.ColorIndex = 6
.Formula = ""
End With
With Selection
.FormatConditions.Delete
.FormulaR1C1 = "=RC[0] ="""""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(1).Interior.ColorIndex = 5
.Formula = ""
End With
换句话说,当用户在左边的第3个单元格中选择“A”时,相关单元格的颜色应为颜色索引6,如果感兴趣的单元格为空,则颜色代码为5.遗憾的是,此代码不起作用,只为条件格式创建一条规则。
答案 0 :(得分:2)
.FormatConditions.Delete删除以前的格式条件。如果您在第二部分中删除.FormatConditions.Delete并将.FormatConditions(1)更改为.FormatConditions(2)它应该有效:
Application.Worksheets("Database").Cells(k, ColumnOfInterest).Select
With Selection
.FormatConditions.Delete
.FormulaR1C1 = "=RC[-3] =""A"""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(1).Interior.ColorIndex = 6
.Formula = ""
.FormulaR1C1 = "=RC[0] ="""""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(2).Interior.ColorIndex = 5
.Formula = ""
End With