Vba: applica la formattazione condizionale ai valori duplicati
È possibile utilizzare la seguente sintassi di base in VBA per applicare la formattazione condizionale ai valori duplicati in un intervallo specifico:
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
Questo particolare esempio applica la formattazione condizionale ai valori duplicati nell’intervallo A2:A11 del foglio corrente in Excel.
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: utilizzare VBA per applicare la formattazione condizionale ai valori duplicati
Supponiamo di avere la seguente colonna di valori in Excel:
Supponiamo di voler applicare la seguente formattazione condizionale ai valori duplicati nella colonna A:
- Sfondo blu
- Testo nero
- Testo grassetto
Per fare ciò possiamo creare la seguente macro:
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 eseguiamo questa macro, riceviamo il seguente output:
Tieni presente che la formattazione condizionale viene applicata a ciascuna cella nella colonna A con un valore duplicato.
Se desideri applicare la formattazione condizionale a un intervallo diverso di celle, sostituisci semplicemente A2:A11 nella macro con un intervallo diverso.
Inoltre, se desideri rimuovere tutta la formattazione condizionale dalle celle del foglio corrente, puoi creare la seguente macro a tale scopo:
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Tieni presente che qualsiasi formattazione condizionale è stata rimossa dalle celle.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come contare i valori univoci nell’intervallo
VBA: come contare le celle con testo specifico
VBA: come scrivere le funzioni COUNTIF e COUNTIFS