Bedingte Formatierung in Excel VBA
In Excel haben wir alle die bedingte Formatierung verwendet, um doppelte Werte hervorzuheben. Eine hauptsächlich bedingte Formatierung wird verwendet, um doppelte Werte zu erhalten. Wir können doppelte Werte auf viele Arten hervorheben. Wir können die doppelten Werte hervorheben, bereichsspezifische Werte festlegen und die Regel definieren, um die Formatierungskriterien zu vervollständigen. Nachfolgend sind die Variablenfunktionen aufgeführt, die unter Bedingte Formatierung verfügbar sind.
Was aber, wenn wir diesen Prozess der Hervorhebung von doppelten oder anderen Werten gemäß unserer Anforderung automatisieren können? Die Kriterien, die wir mithilfe der bedingten Formatierung in Excel definieren können, können auch in VBA vorgenommen werden. Zum Anwenden der bedingten Formatierung können wir eine beliebige Zelle auswählen, deren Bereich im Excel-Arbeitsblatt verfügbar ist. Die bedingte Formatierung funktioniert nur, wenn die definierten Kriterien die Anforderung erfüllen. Ansonsten zeigt es keine Farbveränderung. Mithilfe der bedingten Formatierung in VBA können wir die Farbe von Zellen oder Zellinhalten ändern, die Zellenfarbe löschen oder auch die Farbe entfernen. Abgesehen von der Änderung der Farbe der Zelle können wir den Zelleninhalt in Fettdruck oder Kursivdruck ändern. Sobald dies erledigt ist, können wir auch alle Änderungen rückgängig machen.
Wie verwende ich die bedingte Formatierung in Excel VBA?
Im Folgenden finden Sie verschiedene Beispiele für die Verwendung der Funktion zur bedingten Formatierung in Excel mithilfe von VBA-Code.
Sie können diese Excel-Vorlage für die bedingte VBA-Formatierung hier herunterladen - Excel-Vorlage für die bedingte VBA-FormatierungBedingte VBA-Formatierung - Beispiel 1
Wir haben Daten von einigen Zahlen und Texten, wie unten in Spalte A und B gezeigt. Jetzt haben wir bereits die Farbe kategorisiert, die wir Zahlen und Texten in Zelle D2 geben müssen. Wir haben gelbe Farbe für Nummer 1 und Alphabet A und grüne Farbe für Nummer 2 und Alphabet B identifiziert.
Die bedingte VBA-Formatierung kann zwar in Module implementiert werden, das Schreiben des Codes für die bedingte Formatierung in Sheet bewirkt jedoch, dass Code nur in diesem Sheet funktioniert. Klicken Sie dazu anstelle der Option Modul auf die Registerkarte Einfügen, um ein Modul einzufügen.
Schritt 1: Wählen Sie nun aus der ersten Dropdown-Liste das Arbeitsblatt aus, das standardmäßig Allgemein ist, und aus der Dropdown-Liste wird automatisch die Option SelectionChange ausgewählt (siehe Abbildung unten).
Schritt 2: Sobald wir dies getan haben, wird automatisch die private Unterkategorie aktiviert und die Zielzelle wird als Bereich angezeigt.
Code:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) End Sub
Schritt 3: Schreiben Sie nun den Code und definieren Sie zunächst eine Variable MyRange als Range . Sie können auch einen anderen Namen anstelle von MyRange auswählen.
Code:
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) Dim MyRange As Range End Sub
Schritt 4: Verwenden Sie Set und wählen Sie den definierten Bereich wie unten gezeigt.
Code:
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) Dim MyRange As Range Set MyRange = End Sub
Schritt 5: Wählen Sie anschließend das Arbeitsblatt aus, in dem die bedingte Formatierung angewendet werden soll. Hier ist unser Blatt Sheet1. Wir können die Sequenz auch als 1 setzen, anstatt Sheet1 zu schreiben. Wählen Sie dann den Bereich der Zellen aus, die formatiert werden sollen. Hier reicht unser Angebot von Zelle A1 bis B8.
Code:
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) Dim MyRange As Range Set MyRange = Arbeitsblätter ("Sheet1"). Range ("A1: B8") End Sub
Schritt 6: Öffnen Sie nun eine For Each-Next-Schleife, wie unten gezeigt. Beginnen Sie damit, indem Sie die Zelle definierte Variable MyRange auswählen .
Code:
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) Dim MyRange As Range Legen Sie MyRange = Worksheets ("Sheet1") fest. Range ("A1: B8") für jede Zelle in MyRange Next End Sub
Schritt 7: Öffnen Sie nun wieder eine If-Else-Schleife.
Code:
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) Dim MyRange As Range Legen Sie MyRange = Worksheets ("Sheet1") fest. Range ("A1: B8") für jede Zelle in MyRange If End If Next End Sub
In dieser Region würden wir allen in unserem Sortiment verfügbaren Zahlen und Buchstaben die Farben zuweisen.
Schritt 8: Schreiben Sie den Code. Wenn der Zellenwert 1 ist, ist die Innenfarbe der ausgewählten Bereichszelle, die von A1 bis B8 reicht, Grün. Und für Grün haben wir den Farbcode 6 zugewiesen.
Code:
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) Dim MyRange As Range Set MyRange = Arbeitsblätter ("Sheet1"). Range ("A1: B8") für jede Zelle in MyRange If Cell.Value Like "1" Then Cell.Interior.ColorIndex = 6 End If Next End Sub
Schritt 9: Jetzt für Zellenwert Nummer 2. Wenn der Zellenwert einer Zelle aus dem ausgewählten Bereich 2 ist, ist die Innenfarbe dieser Zelle Gelb. Und für Gelb haben wir den Farbcode 4 zugewiesen.
Code:
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) Dim MyRange As Range Set MyRange = Arbeitsblätter ("Sheet1"). Range ("A1: B8") für jede Zelle in MyRange If Cell.Value Like "1" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Dann Cell.Interior.ColorIndex = 4 End If Next End Sub
Für jede Farbe sind unterschiedliche Farbcodes zugeordnet, die von 1 bis 56 beginnen. Der Nummerncode 1 ist der Farbe Schwarz und die Nummer 56 der Farbe Dunkelgrau zugeordnet. Dazwischen gibt es verschiedene andere Farbtöne, die wir in Microsoft Documents finden können.
Schritt 10: Wenn einer der oben genannten
Bedingung ist FALSE, dann hätten wir eine andere Else if-Bedingung, bei der die Innenfarbe der Zelle Gelb ist, wenn der Zellenwert A ist. Und für Gelb werden wir wieder den Code 6 zuweisen.
Code:
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) Dim MyRange As Range Set MyRange = Arbeitsblätter ("Sheet1"). Range ("A1: B8") für jede Zelle in MyRange If Cell.Value Like "1" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Then Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Then Cell.Interior.ColorIndex = 6 End If Next End Sub
Schritt 11: Machen Sie dasselbe auch für den Zellenwert B, mit dem Farbcode 4 als Grün.
Code:
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) Dim MyRange As Range Set MyRange = Arbeitsblätter ("Sheet1"). Range ("A1: B8") für jede Zelle in MyRange If Cell.Value Like "1" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Then Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B" Then Cell.Interior.ColorIndex = 4 End If Next End Sub
Schritt 12: Wenn eine der Bedingungen nicht WAHR ist, bevorzugen wir für Else den Farbcode None .
Code:
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich) Dim MyRange As Range Set MyRange = Arbeitsblätter ("Sheet1"). Range ("A1: B8") für jede Zelle in MyRange If Cell.Value Like "1" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Then Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Then Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B" Then Cell.Interior.ColorIndex = 4 Sonst Cell.Ineterios.ColorIndex = xlNone End If Next End Sub
Schritt 13: Da der Code groß ist, drücken Sie die Funktionstaste F8, um jeden Codeschritt zu kompilieren. Wenn kein Fehler gefunden wurde, klicken Sie auf die Wiedergabetaste, um den gesamten Code auf einmal auszuführen. Wir werden sehen, dass gemäß der im VBA-Code definierten bedingten Formatierungsregel die Farbe der Zellen in ausgewählte Farbcodes geändert wurde, wie unten gezeigt.
Schritt 14: Diese Formatierung ist jetzt behoben. Wenn wir die Änderungen in der Farbe sehen wollen, ändern wir zum Testen den Wert jeder Zelle, die A1 betrachtet, von 1 auf 2. Wir werden sehen, dass die Farbe der Zelle A1 auf Grün geändert wird.
Dies liegt daran, dass wir erklärt haben, dass im Bereich A1 bis B8 jede Zelle, die die Nummern 1 und 2 sowie die Buchstaben A und B enthält, wie in Zelle D2 bis E3 gezeigt als gelbe und grüne Farbe formatiert wird.
Vor-und Nachteile
- Es gibt sofort eine Ausgabe, wenn wir große Datenmengen haben. Wenden wir dasselbe über die Menüoption Excel an, dauert es einige Zeit, bis die Formatierung für große Datenmengen gelöscht ist.
- Wir können alle Arten von Funktionen ausführen, die in Excel für die bedingte Formatierung in VBA verfügbar sind.
- Es wird nicht empfohlen, die bedingte VBA-Formatierung für einen kleinen Datensatz anzuwenden.
Dinge, an die man sich erinnern sollte
- Neben der Hervorhebung von Duplikaten und Zellen mit demselben Wert gibt es viele weitere Funktionen. Wir können das Format der Zelle in beliebiger Weise ändern, z. B. Fett, Kursiv, die Schriftfarbe ändern, die Hintergrundfarbe ändern und die Werte zwischen bestimmten Bereichen hervorheben.
- Sobald die bedingte Formatierung angewendet wurde, können wir die Regel ändern. Tatsächlich können wir auch die Formatierungsbedingungen löschen. Damit unsere Daten wieder normal werden.
- Wir können mehr als eine Bedingung in einem Makro anwenden.
Empfohlene Artikel
Dies ist eine Anleitung zur bedingten VBA-Formatierung. Hier wird die Verwendung der bedingten Excel VBA-Formatierungsfunktion zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage erläutert. Sie können auch unsere anderen Artikelvorschläge durchgehen -
- Kopieren Einfügen Funktion in VBA
- Teilzeichenfolge-Excel-Funktion
- VBA-Index außerhalb des gültigen Bereichs
- Excel ISNUMBER Formula
- Bedingte Formatierung für Daten in Excel