Estou tentando destacar duplicatas usando formatação condicional no VBA.
Se você observar a formatação condicional usando VBA , um dos XlFormatConditionType (tipo) para FormatConditions.Add é xlUniqueValues.
Sintaxe: FormatConditions.Add(Tipo, Operador, Fórmula1, Fórmula2)
Os operadores listados são: xlBetween; xlIgual; xlMaior; xlMaiorIgual; xlMenos; xlMenosIgual; xlNotBetween; xlNotEqual.
Nenhuma delas se aplica a xlUniqueValues. Eu tentei todos eles, incluindo xlDuplicate e xlUnique, que não geram erros. Tipos xlTextString usa TextOperator e xlTimePeriod usa DateOperator como modificadores de operador, mas não há informações sobre um modificador para xlUniqueValues.
With Range("a1:a10").FormatConditions.Add(xlTextString, TextOperator:=xlContains, String:="egg")
.Interior.Color = RGB(255, 166, 0)
End With
Meu código:
With Range("B6:B30").FormatConditions.Add(xlUniqueValues, xlDuplicate)
.Interior.Color = RGB(255, 166, 0)
End With
Isso destaca todos os valores exclusivos, não importa o que eu coloque para o operador. A sintaxe está correta, mas não consigo encontrar informações sobre como destacar duplicatas.
Qual é a sintaxe correta para destacar duplicatas?
Eu tenho isso funcionando como uma formatação condicional capturada por macro (mostrada abaixo), mas gostaria de fazê-lo funcionar com essa sintaxe, pois é mais limpa.
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
Pode ser mais limpo, mas não funciona como você já descobriu. O parâmetro Operador de FormatCondition.Add neste caso é ignorado:
A documentação UniqueValues afirma que:
O que significa que, se você quiser verificar duplicatas, use a propriedade DupeUnique que:
Seu código mudará para:
OU