VBA 如何根据该范围内一个单元格的值有条件地格式化该范围内的单元格?
VBA How do I conditionally format a range of cells based on the value of one cell in that range?
我的目标是,如果该行中特定单元格的值显示“GAT1”,则整行的文本变为灰色。我可以使用常规条件格式很好地做到这一点,但我正在努力弄清楚如何使用宏自动创建这种格式。
我的问题实际上归结为我的格式设置标准使用公式来指定文本字符串。我的理解是,我通常必须将文本字符串放在引号中,否则 VBA 将无法识别它们,但是 VBA 的语法不允许我将所述文本字符串放在引号中作为公式包含此字符串的字符串本身已用引号引起来。 (例如,我试图这样写我的条件 - Formula1:="=F1="GAT1"" 或 Formula1:="=F1=GAT1" 但这些选项都没有产生所需的结果)
下面的代码是我最近的尝试。我已经尝试分离出文本字符串并将其连接在一起,但这没有用。
Dim MyRange As Range
Set MyRange = Range("A1:P200")
MyRange.FormatConditions.Add Type:=xlExpression, Formula1:="=$F1" & "=GAT1"
With MyRange.FormatConditions(1)
.Font.Color = RGB(217, 217, 217)
End With
非常感谢任何有关如何解决此问题的想法。
像这样:
Dim MyRange As Range
Set MyRange = Range("A1:P200")
With MyRange.FormatConditions.Add(Type:=xlExpression, Formula1:="=$F1=""GAT1""")
.Font.Color = RGB(217, 217, 217)
End With
我的目标是,如果该行中特定单元格的值显示“GAT1”,则整行的文本变为灰色。我可以使用常规条件格式很好地做到这一点,但我正在努力弄清楚如何使用宏自动创建这种格式。
我的问题实际上归结为我的格式设置标准使用公式来指定文本字符串。我的理解是,我通常必须将文本字符串放在引号中,否则 VBA 将无法识别它们,但是 VBA 的语法不允许我将所述文本字符串放在引号中作为公式包含此字符串的字符串本身已用引号引起来。 (例如,我试图这样写我的条件 - Formula1:="=F1="GAT1"" 或 Formula1:="=F1=GAT1" 但这些选项都没有产生所需的结果)
下面的代码是我最近的尝试。我已经尝试分离出文本字符串并将其连接在一起,但这没有用。
Dim MyRange As Range
Set MyRange = Range("A1:P200")
MyRange.FormatConditions.Add Type:=xlExpression, Formula1:="=$F1" & "=GAT1"
With MyRange.FormatConditions(1)
.Font.Color = RGB(217, 217, 217)
End With
非常感谢任何有关如何解决此问题的想法。
像这样:
Dim MyRange As Range
Set MyRange = Range("A1:P200")
With MyRange.FormatConditions.Add(Type:=xlExpression, Formula1:="=$F1=""GAT1""")
.Font.Color = RGB(217, 217, 217)
End With