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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *