2

我是vba的新手,我很困惑如何格式化基于多个条件的范围。例如,我想仅在列(a:g)的值小于0的情况下突出显示列中的单元格,并且列H中它们各自行中的值包含字符串“是”或“否”。我编写的代码执行此功能不起作用,但看起来像这样。Excel VBA FormatCondiitons多个条件

Columns("A:G").Select 
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ 
"=AND(OR($H1 = ""YES"", $H1 = ""NO""),Columns(A,G) < 0)" 
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 

With Selection.FormatConditions(1).Interior 
    .PatternColorIndex = xlAutomatic 
    .Color = 120000 
    .TintAndShade = 0 
End With 
Selection.FormatConditions(1).StopIfTrue = False 

任何人都可以指向正确的方向吗?谢谢!

+0

@lebelinoz - 这实际上是**被清理了触摸本质上记录的代码。我已经把它降到了最低。 – Jeeped

回答

1

尝试,因为,

With Worksheets("sheet2").Columns("A:G") 
    .FormatConditions.Delete 
    With .FormatConditions.Add(Type:=xlExpression, _ 
     Formula1:="=AND(OR($H1=""yes"", $H1=""no""), $G1<0, $A1<0)") 
     .Interior.Color = 120000 
     .StopIfTrue = False 
    End With 
End With 

重读你原来的叙述后,我认为,这可能是一个更好的配方。

Formula1:="=AND(OR($H1=""yes"", $H1=""no""), A1<0") 
+0

刚刚发布该固定公式:)。 G:0 –

+0

感谢您关注我Scott!你永远不知道我什么时候开始加入苏格兰威士忌咖啡。 – Jeeped

+2

或者可能是苏格兰威士忌的咖啡! –