Vba: jak zastosować formatowanie warunkowe do komórek


Aby zastosować formatowanie warunkowe do komórek, możesz użyć następujących metod w VBA:

Metoda 1: Zastosuj formatowanie warunkowe na podstawie warunku

 Sub ConditionalFormatOne()
Dim rg As Range
Dim cond As FormatCondition

'specify range to apply conditional formatting
Set rg = Range(" B2:B11 ")

'clear any existing conditional formatting
rg.FormatConditions.Delete

'apply conditional formatting to any cell in range B2:B11 with value greater than 30
Set cond = rg.FormatConditions.Add(xlCellValue, xlGreater, " =30 ")

'define conditional formatting to use
With cond
.Interior.Color = vbGreen
.Font.Color = vbBlack
.Font.Bold = True
End With

End Sub

Metoda 2: Zastosuj formatowanie warunkowe na podstawie wielu warunków

 Sub ConditionalFormatMultiple()
Dim rg As Range
Dim cond1 As FormatCondition, cond2 As FormatCondition, cond3 As FormatCondition

'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")

'clear any existing conditional formatting
rg.FormatConditions.Delete

'specify rules for conditional formatting
Set cond1 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Mavericks ”)
Set cond2 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Blazers ”)
Set cond3 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Celtics ”)

'define conditional formatting to use
With cond1
.Interior.Color = vbBlue
.Font.Color = vbWhite
.Font.Italic = True
End With

With cond2
.Interior.Color = vbRed
.Font.Color = vbWhite
.Font.Bold = True
End With

With cond3
.Interior.Color = vbGreen
.Font.Color = vbBlack
End With

End Sub

Metoda 3: Usuń wszystkie reguły formatowania warunkowego z komórek

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

Poniższe przykłady pokazują, jak w praktyce zastosować każdą metodę z następującym zbiorem danych w Excelu:

Przykład 1: Zastosuj formatowanie warunkowe na podstawie warunku

Możemy użyć poniższego makra, aby wypełnić komórki z zakresu B2:B11 o wartości większej niż 30 zielonym tłem, czarną czcionką i pogrubionym stylem tekstu:

 Sub ConditionalFormatOne()
Dim rg As Range
Dim cond As FormatCondition

'specify range to apply conditional formatting
Set rg = Range(" B2:B11 ")

'clear any existing conditional formatting
rg.FormatConditions.Delete

'apply conditional formatting to any cell in range B2:B11 with value greater than 30
Set cond = rg.FormatConditions.Add(xlCellValue, xlGreater, " =30 ")

'define conditional formatting to use
With cond
.Interior.Color = vbGreen
.Font.Color = vbBlack
.Font.Bold = True
End With

End Sub

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

Należy pamiętać, że każda komórka w zakresie B2:B11 , która ma wartość większą niż 30, podlega formatowaniu warunkowemu.

Każdą komórkę o wartości równej lub mniejszej niż 30 pozostawia się po prostu samą.

Przykład 2: Zastosuj formatowanie warunkowe w oparciu o wiele warunków

Możemy użyć następującego makra, aby zastosować formatowanie warunkowe do komórek z zakresu A2:A11 na podstawie nazwy zespołu:

 Sub ConditionalFormatMultiple()
Dim rg As Range
Dim cond1 As FormatCondition, cond2 As FormatCondition, cond3 As FormatCondition

'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")

'clear any existing conditional formatting
rg.FormatConditions.Delete

'specify rules for conditional formatting
Set cond1 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Mavericks ”)
Set cond2 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Blazers ”)
Set cond3 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Celtics ”)

'define conditional formatting to use
With cond1
.Interior.Color = vbBlue
.Font.Color = vbWhite
.Font.Italic = True
End With

With cond2
.Interior.Color = vbRed
.Font.Color = vbWhite
.Font.Bold = True
End With

With cond3
.Interior.Color = vbGreen
.Font.Color = vbBlack
End With

End Sub

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

Należy pamiętać, że komórki z nazwami drużyn „Mavericks”, „Blazers” i „Celtics” podlegają określonemu formatowaniu warunkowemu.

Jedyna drużyna o nazwie „Lakers” pozostaje sama, ponieważ nie określiliśmy żadnych reguł formatowania warunkowego dla komórek o tej nazwie.

Przykład 3: Usuń wszystkie reguły formatowania warunkowego z komórek

Na koniec możemy użyć poniższego makra, aby usunąć wszystkie reguły formatowania warunkowego z komórek w bieżącym arkuszu:

 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 każdej komórki usunięto całe formatowanie warunkowe.

Dodatkowe zasoby

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

VBA: Jak liczyć wystąpienia znaków w ciągu
VBA: jak sprawdzić, czy ciąg zawiera inny ciąg
VBA: formuła na „Jeśli” komórka zawiera”

Dodaj komentarz

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