Vba: zastosuj formatowanie warunkowe do zduplikowanych wartości


Możesz użyć następującej podstawowej składni w VBA, aby zastosować formatowanie warunkowe do zduplikowanych wartości w określonym zakresie:

 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

W tym konkretnym przykładzie zastosowano formatowanie warunkowe do zduplikowanych wartości z zakresu A2:A11 bieżącego arkusza w programie Excel.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: użycie języka VBA do zastosowania formatowania warunkowego do zduplikowanych wartości

Załóżmy, że w Excelu mamy następującą kolumnę wartości:

Załóżmy, że chcemy zastosować następujące formatowanie warunkowe do zduplikowanych wartości w kolumnie A:

  • Niebieskie tło
  • Czarny tekst
  • Pogrubiony tekst

W tym celu możemy utworzyć następujące makro:

 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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Należy pamiętać, że formatowanie warunkowe jest stosowane do każdej komórki w kolumnie A zawierającej zduplikowaną wartość.

Jeśli chcesz zastosować formatowanie warunkowe do innego zakresu komórek, po prostu zamień A2:A11 w makrze na inny zakres.

Dodatkowo, jeśli chcesz usunąć całe formatowanie warunkowe z komórek bieżącego arkusza, możesz w tym celu utworzyć następujące makro:

 Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Należy pamiętać, że z komórek usunięto wszelkie formatowanie warunkowe.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak policzyć unikalne wartości w zakresie
VBA: Jak liczyć komórki zawierające określony tekst
VBA: Jak pisać funkcje COUNTIFS i COUNTIFS

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *