对于给定单元格中的每个值,在数据

时间:2016-06-15 04:33:22

标签: excel vba formatting conditional highlight

目前使用的公式如下:

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之间,然后在另一个电子表格中突出显示这些值?

1 个答案:

答案 0 :(得分:1)

尽量避免使用Range .SelectRange .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