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