我正在尝试使用 VBA 下的条件格式突出显示重复项。
如果您查看使用 VBA 的条件格式,则 FormatConditions.Add 的 XlFormatConditionType(类型)之一是 xlUniqueValues。
语法:FormatConditions.Add(Type, Operator, Formula1, Formula2)
列出的运算符是:xlBetween;xl相等;xl更大;xlGreaterEqual; xl少;xlLessEqual; xlNotBetween; xlNotEqual。
这些都不适用于 xlUniqueValues。我已经尝试了所有这些,包括 xlDuplicate 和 xlUnique,它们不会引发错误。类型 xlTextString 使用 TextOperator,xlTimePeriod 使用 DateOperator 作为运算符修饰符,但没有关于 xlUniqueValues 修饰符的信息。
With Range("a1:a10").FormatConditions.Add(xlTextString, TextOperator:=xlContains, String:="egg")
.Interior.Color = RGB(255, 166, 0)
End With
我的代码:
With Range("B6:B30").FormatConditions.Add(xlUniqueValues, xlDuplicate)
.Interior.Color = RGB(255, 166, 0)
End With
这突出了所有独特的价值,无论我为操作员输入了什么。语法是正确的,但我找不到有关如何突出显示重复项的信息。
突出显示重复项的正确语法是什么?
我把它作为一个宏捕获的条件格式(如下所示)工作,但我想让它使用这种语法,因为它更干净。
Range("B6:B30").Select
Selection.FormatConditions.AddUniqueValues
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).DupeUnique = xlDuplicate
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(255, 166, 0)
.TintAndShade = 0
End With
它可能更干净,但它不像您已经发现的那样工作。在这种情况下FormatCondition.Add的 Operator 参数被忽略:
UniqueValues文档指出:
这意味着如果要检查重复项,请使用DupeUnique属性:
您的代码将更改为:
或者