使用Excel VBA在另一个工作簿上基于不同规则应用条件格式
我有一个大型数据库,我正在运行一个vba脚本,以便创建许多不同的工作簿,其中只包含来自完整数据库的一些示例数据。这很好,我使用一个矩阵来获取所有相关条目,然后将整个矩阵粘贴到新工作簿的定义范围内(而不是将一个单元格逐个从一个工作表复制到另一个工作表)。我的问题是现在需要为条件格式添加两个规则 我正在寻找一些东西,例如:使用Excel VBA在另一个工作簿上基于不同规则应用条件格式,excel,vba,formatting,conditional,Excel,Vba,Formatting,Conditional,我有一个大型数据库,我正在运行一个vba脚本,以便创建许多不同的工作簿,其中只包含来自完整数据库的一些示例数据。这很好,我使用一个矩阵来获取所有相关条目,然后将整个矩阵粘贴到新工作簿的定义范围内(而不是将一个单元格逐个从一个工作表复制到另一个工作表)。我的问题是现在需要为条件格式添加两个规则 我正在寻找一些东西,例如: Application.Worksheets("Database").Cells(k, ColumnOfInterest).Select With Selection
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。不幸的是,这段代码不起作用,只为条件格式创建了一条规则。.FormatConditions.Delete删除以前的formatcondition。如果在第二部分中删除.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