Vba: aplique formatação condicional a valores duplicados
Você pode usar a seguinte sintaxe básica em VBA para aplicar formatação condicional a valores duplicados em um intervalo específico:
Sub ConditionalFormatDuplicates()
Dim rg As Range
Dim uv As UniqueValues
'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'identify duplicate values in range A2:A11
Set uv = rg.FormatConditions.AddUniqueValues
uv.DupeUnique = xlDuplicate
'apply conditional formatting to duplicate values
uv.Interior.Color = vbBlue
uv.Font.Color = vbWhite
uv.Font.Bold = True
End Sub
Este exemplo específico aplica formatação condicional a valores duplicados no intervalo A2:A11 da planilha atual do Excel.
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: use VBA para aplicar formatação condicional a valores duplicados
Suponha que temos a seguinte coluna de valores no Excel:
Suponha que queiramos aplicar a seguinte formatação condicional aos valores duplicados na coluna A:
- Fundo azul
- Texto preto
- Texto em negrito
Podemos criar a seguinte macro para fazer isso:
Sub ConditionalFormatDuplicates()
Dim rg As Range
Dim uv As UniqueValues
'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'identify duplicate values in range A2:A11
Set uv = rg.FormatConditions.AddUniqueValues
uv.DupeUnique = xlDuplicate
'apply conditional formatting to duplicate values
uv.Interior.Color = vbBlue
uv.Font.Color = vbWhite
uv.Font.Bold = True
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que a formatação condicional é aplicada a cada célula da coluna A com um valor duplicado.
Se você deseja aplicar formatação condicional a um intervalo diferente de células, basta substituir A2:A11 na macro por um intervalo diferente.
Além disso, se quiser remover toda a formatação condicional das células da planilha atual, você pode criar a seguinte macro para fazer isso:
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que qualquer formatação condicional foi removida das células.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
VBA: Como contar valores únicos no intervalo
VBA: Como contar células com texto específico
VBA: Como escrever funções COUNTIF e COUNTIFS