目前使用的公式如下:
Columns("D:D").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$D1='General Profiling'!$B$6"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = True
然而,有时候,C6,D6等可能会有值,我也希望条件格式能够拾取和突出显示。
有没有办法确定某个值是否已放入C2到C100之间,然后在另一个电子表格中突出显示这些值?
答案 0 :(得分:1)
尽量避免使用Range .Select和Range .Activate方法¹。
With ActiveSheet
With .Range(.Cells(1, "D"), .Cells(1, Columns.Count).End(xlToLeft)).EntireColumn
With .FormatConditions.Add(Type:=xlExpression, Formula1:= _
"=COUNTIF('General Profiling'!$B$6:$Z6, $D1)")
.Interior.Color = vbYellow
End With
End With
End With
如果您可以将ActiveSheet property更改为Worksheet Object的名称或代号,则会更好。
.¹有关远离依赖select和activate以实现目标的更多方法,请参阅How to avoid using Select in Excel VBA macros。