Vba: so wenden sie bedingte formatierung auf zellen an
Sie können in VBA die folgenden Methoden verwenden, um bedingte Formatierung auf Zellen anzuwenden:
Methode 1: Bedingte Formatierung basierend auf einer Bedingung anwenden
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
Methode 2: Bedingte Formatierung basierend auf mehreren Bedingungen anwenden
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
Methode 3: Entfernen Sie alle bedingten Formatierungsregeln aus Zellen
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Die folgenden Beispiele zeigen, wie Sie die einzelnen Methoden in der Praxis mit dem folgenden Datensatz in Excel anwenden:
Beispiel 1: Bedingte Formatierung basierend auf einer Bedingung anwenden
Mit dem folgenden Makro können wir Zellen im Bereich B2:B11 , die einen Wert größer als 30 haben, mit grünem Hintergrund, schwarzer Schrift und fettem Textstil füllen:
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
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Beachten Sie, dass jede Zelle im Bereich B2:B11 , die einen Wert größer als 30 hat, einer bedingten Formatierung unterliegt.
Jede Zelle mit einem Wert kleiner oder gleich 30 wird einfach in Ruhe gelassen.
Beispiel 2: Bedingte Formatierung basierend auf mehreren Bedingungen anwenden
Wir können das folgende Makro verwenden, um eine bedingte Formatierung auf Zellen im Bereich A2:A11 basierend auf ihrem Teamnamen anzuwenden:
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
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Beachten Sie, dass die Zellen mit den Teamnamen „Mavericks“, „Blazers“ und „Celtics“ alle einer bestimmten bedingten Formatierung unterliegen.
Das einzige Team mit dem Namen „Lakers“ bleibt in Ruhe, da wir keine bedingten Formatierungsregeln für Zellen mit diesem Teamnamen angegeben haben.
Beispiel 3: Entfernen Sie alle bedingten Formatierungsregeln aus Zellen
Schließlich können wir das folgende Makro verwenden, um alle bedingten Formatierungsregeln aus Zellen im aktuellen Blatt zu entfernen:
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Beachten Sie, dass sämtliche bedingte Formatierungen aus allen Zellen entfernt wurden.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in VBA ausführen:
VBA: So zählen Sie das Vorkommen von Zeichen in einer Zeichenfolge
VBA: So überprüfen Sie, ob eine Zeichenfolge eine andere Zeichenfolge enthält
VBA: eine Formel für „Wenn“ die Zelle enthält“