Bedingte Formatierung mithilfe von Excel-VBA verwenden
In this Article
- Bedingte Formatierung in Excel
- Bedingte Formatierung in VBA
- Praktische Anwendungen der bedingten Formatierung in VBA
- Einfaches Beispiel für die Erstellung einer bedingten Formatierung für einen Bereich
- Mehrfach bedingte Formatierung
- Eine Regel löschen
- Ändern einer Regel
- Verwendung einer Farbskala
- Bedingte Formatierung für Fehlerwerte
- Bedingte Formatierung für Daten aus der Vergangenheit
- Datenbalken in der bedingten Formatierung in VBA verwenden
- Symbole in der bedingten Formatierung in VBA verwenden
- Bedingte Formatierung zum Hervorheben der Top-Fünf verwenden
- Bedeutung der Parameter StopIfTrue und SetFirstPriority
- Bedingte Formatierung mit Verweis auf andere Zellenwerte verwenden
- Operatoren, die in Anweisungen zur bedingten Formatierung verwendet werden können
Bedingte Formatierung in Excel
Mit der bedingten Formatierung von Excel können Sie Regeln für die Zellenformatierung festlegen.
Sie können zum Beispiel eine Regel zum Hervorheben von Zellen, die bestimmte Kriterien erfüllen, erstellen. Beispiele hierfür sind:
- Zahlen, die in einen bestimmten Bereich fallen (z. B. kleiner als 0).
- Die 10 wichtigsten Elemente in einer Liste.
- Erstellen einer „Heatmap“.
- „Formelbasierte“ Regeln für praktisch jede bedingte Formatierung.
In Excel finden Sie die bedingte Formatierung in der Menüleiste unter Start > Formatvorlagen (ALT > H > L).
Um eine eigene Regel zu erstellen, klicken Sie auf „Neue Regel“, woraufhin ein neues Fenster erscheint:
Bedingte Formatierung in VBA
Auf all diese Funktionen der bedingten Formatierung können Sie in VBA zugreifen.
Beachten Sie, dass Ihre neuen Parameter im Excel-Frontend-Fenster für die bedingte Formatierung erscheinen und für den Benutzer sichtbar sind, wenn Sie die bedingte Formatierung in VBA-Code erstellen. Der Benutzer kann diese bearbeiten oder löschen, es sei denn, Sie haben das Arbeitsblatt gesperrt.
Die Regeln für die bedingte Formatierung werden auch gespeichert, wenn das Arbeitsblatt gespeichert wird.
Die Regeln für die bedingte Formatierung gelten speziell für ein bestimmtes Arbeitsblatt und einen bestimmten Zellenbereich. Wenn sie an anderer Stelle in der Arbeitsmappe benötigt werden, müssen sie auch auf dem betroffenen Arbeitsblatt erstellt werden.
Praktische Anwendungen der bedingten Formatierung in VBA
Möglicherweise haben Sie eine große Menge an Rohdaten aus einer CSV-Datei (kommagetrennte Werte) oder aus einer Datenbanktabelle oder -abfrage in Ihr Arbeitsblatt importiert. Diese Daten können in ein Dashboard oder einen Bericht einfließen, wobei sich die importierten Zahlen von einem Zeitraum zum anderen ändern.
Wenn sich eine Zahl ändert und außerhalb eines akzeptablen Bereichs liegt, möchten Sie dies vielleicht hervorheben, z. B. durch eine rote Zellenhintergrundfarbe, und Sie können dies durch Erstellen einer bedingten Formatierung erreichen. Auf diese Weise wird der Benutzer sofort auf diese Zahl aufmerksam gemacht und kann dann nachforschen, warum dies der Fall ist.
Mit VBA können Sie die bedingte Formatierung ein- oder ausschalten. Mit VBA können Sie die Regeln für einen Zellenbereich deaktivieren oder wieder aktivieren. Es kann vorkommen, dass es einen guten Grund für eine ungewöhnliche Zahl gibt, aber wenn der Benutzer das Dashboard oder den Bericht einer höheren Managementebene vorlegt, möchte er die „Alarmglocken“ ausschalten können.
In den importierten Rohdaten können Sie auch Bereiche hervorheben, in den Zahlen lächerlich groß oder lächerlich klein sind. Der importierte Datenbereich hat in der Regel für jeden Zeitraum eine andere Größe, so dass Sie VBA verwenden können, um die Größe des neuen Datenbereichs zu ermitteln und eine bedingte Formatierung nur für diesen Bereich einzufügen.
Möglicherweise haben Sie auch eine Situation, in der es eine sortierte Liste von Namen mit numerischen Werten für jeden einzelnen gibt (z. B. Gehalt eines Mitarbeiters, Prüfungsnoten). Mit der bedingten Formatierung können Sie Farbskalen verwenden, um vom höchsten zum niedrigsten Wert zu gelangen, was für Präsentationszwecke sehr eindrucksvoll aussieht.
Allerdings ist die Namensliste nicht immer statisch und Sie können VBA-Code verwenden, um die Farbskala entsprechend den Änderungen in der Bereichsgröße zu aktualisieren.
Einfaches Beispiel für die Erstellung einer bedingten Formatierung für einen Bereich
In diesem Beispiel wird eine bedingte Formatierung für einen Zellenbereich (A1:A10) auf einem Arbeitsblatt erstellt. Wenn die Zahl im Bereich zwischen 100 und 150 liegt, wird der Zellenhintergrund rot, andernfalls wird er nicht gefärbt.
Sub BedingteFormatierungBeispiel() 'Bereich definieren Dim MeinBereich As Range Set MeinBereich = Range("A1:A10") 'Vorhandene bedingte Formatierung aus dem Bereich löschen MeinBereich.FormatConditions.Delete 'Bedingte Formatierung anwenden MeinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _ Formula1:="=100", Formula2:="=150" MeinBereich.FormatConditions(1).Interior.Color = RGB(255, 0, 0) End Sub
Beachten Sie, dass wir zunächst den Bereich MeinBereich definieren, um die bedingte Formatierung anzuwenden.
Anschließend löschen wir alle vorhandenen bedingten Formatierungen im Bereich. Dies ist eine gute Idee, um zu verhindern, dass bei jeder Ausführung des Codes dieselbe Regel hinzugefügt wird (natürlich ist dies nicht unter allen Umständen sinnvoll).
Farben werden durch numerische Werte angegeben. Es ist eine gute Idee, die RGB-Bezeichnung (Rot, Grün, Blau) dafür zu verwenden. Sie können dafür Standard-Farbkonstanten verwenden wie z. B. vbRed, vbBlue, aber Sie sind hierbei auf acht Farben beschränkt.
Es gibt über 16,7 Millionen Farben und mit RGB können Sie auf sie alle zugreifen. Das ist viel einfacher als sich zu merken, welche Nummer zu welcher Farbe gehört. Jede der drei RGB-Farbnummern reicht von 0 bis 255.
Beachten Sie, dass der Parameter „xlBetween“ inklusive ist, so dass Zellenwerte von 100 oder 150 die Bedingung erfüllen.
Mehrfach bedingte Formatierung
Möglicherweise möchten Sie mehrere bedingte Regeln in Ihrem Datenbereich festlegen, damit alle Werte in einem Bereich von verschiedenen Bedingungen abgedeckt werden:
Sub MehrfachBedingteFormatierungBeispiel() Dim MeinBereich As Range 'Bereichsobjekt erstellen Set MeinBereich = Range("A1:A10") 'Vorherige bedingte Formatierung löschen MeinBereich.FormatConditions.Delete 'Erste Regel hinzufügen MeinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _ Formula1:="=100", Formula2:="=150" MeinBereich.FormatConditions(1).Interior.Color = RGB(255, 0, 0) 'Zweite Regel hinzufügen MeinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="=100" MeinBereich.FormatConditions(2).Interior.Color = vbBlue 'Dritte Regel hinzufügen MeinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="=150" MeinBereich.FormatConditions(3).Interior.Color = vbYellow End Sub
In diesem Beispiel wird die erste Regel wie zuvor festgelegt, wobei die Zellenfarbe rot ist, wenn der Zellenwert zwischen 100 und 150 liegt.
Dann werden zwei weitere Regeln hinzugefügt. Ist der Wert der Zelle kleiner als 100, ist die Zellenfarbe blau und ist er größer als 150, ist die Zellenfarbe gelb.
In diesem Beispiel müssen Sie sicherstellen, dass alle möglichen Zahlenwerte abgedeckt sind und dass sich die Regeln nicht überschneiden.
Wenn sich leere Zellen in diesem Bereich befinden, werden sie blau angezeigt, da Excel sie immer noch als Zellen mit einem Wert von weniger als 100 betrachtet.
Sie können dies umgehen, indem Sie eine weitere Bedingung in Form eines Ausdrucks hinzufügen. Diese muss als erste Bedingungsregel in den Code eingefügt werden. Bei mehreren Regeln ist es sehr wichtig, dass die Reihenfolge der Ausführung stimmt, da die Ergebnisse sonst unvorhersehbar werden.
Sub MehrfachBedingteFormatierungBeispiel() Dim MeinBereich As Range 'Bereichsobjekt erstellen Set MeinBereich = Range("A1:A10") 'Vorherige bedingte Formatierung löschen MeinBereich.FormatConditions.Delete 'Erste Regel hinzufügen MeinBereich.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=LEN(TRIM(A1))=0" MeinBereich.FormatConditions(1).Interior.Pattern = xlNone 'Zweite Regel hinzufügen MeinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _ Formula1:="=100", Formula2:="=150" MeinBereich.FormatConditions(2).Interior.Color = RGB(255, 0, 0) 'Dritte Regel hinzufügen MeinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="=100" MeinBereich.FormatConditions(3).Interior.Color = vbBlue 'Vierte Regel hinzufügen MeinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="=150" MeinBereich.FormatConditions(4).Interior.Color = RGB(0, 255, 0) End Sub
Hier wird der Typ xlExpression und dann eine Excel-Standardformel verwendet, um festzustellen, ob eine Zelle leer ist, anstatt einen numerischen Wert zu verwenden.
Das FormatConditions-Objekt ist Teil des Range-Objekts. Es verhält sich wie eine Sammlung, wobei der Index bei 1 beginnt. Sie können mit einer For-Next- oder For-Each-Schleife durch dieses Objekt iterieren.
Eine Regel löschen
Manchmal kann es notwendig sein, eine einzelne Regel in einem Satz von mehreren Regeln zu löschen, wenn sie den Datenanforderungen nicht entspricht.
Sub BedingteFormatierungLoeschenBeispiel() Dim MeinBereich As Range 'Bereichsobjekt erstellen Set MeinBereich = Range("A1:A10") 'Vorherige bedingte Formatierungen löschen MeinBereich.FormatConditions.Delete 'Erste Regel hinzufügen MeinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _ Formula1:="=100", Formula2:="=150" MeinBereich.FormatConditions(1).Interior.Color = RGB(255, 0, 0) 'Regel löschen MeinBereich.FormatConditions(1).Delete End Sub
Dieser Code erstellt eine neue Regel für den Bereich A1:A10 und löscht sie anschließend. Sie müssen die richtige Indexnummer für das Löschen verwenden. Überprüfen Sie daher im Excel-Frontend die Option „Regeln verwalten“ (hier werden die Regeln in der Reihenfolge ihrer Ausführung angezeigt), um sicherzustellen, dass Sie die richtige Indexnummer erhalten. Beachten Sie, dass es in Excel keine Möglichkeit zum Zurücksetzen gibt, wenn Sie eine Regel für die bedingte Formatierung in VBA löschen, anders als wenn Sie dies über das Excel-Front-End tun.
Ändern einer Regel
Da es sich bei den Regeln um eine Sammlung von auf einem bestimmten Bereich basierenden Objekten handelt, können Sie Änderungen an bestimmten Regeln in VBA leicht vornehmen. Die eigentlichen Eigenschaften sind nach dem Hinzufügen der Regel schreibgeschützt, aber Sie können sie mit der Modify-Methode ändern. Eigenschaften wie z. B. Farben können gelesen und geschrieben werden.
Sub BedingteFormatierungAendernBeispiel() Dim MeinBereich As Range 'Bereichsobjekt erstellen Set MeinBereich = Range("A1:A10") 'Vorherige bedingte Formate löschen MeinBereich.FormatConditions.Delete 'Erste Regel hinzufügen MeinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _ Formula1:="=100", Formula2:="=150" MeinBereich.FormatConditions(1).Interior.Color = RGB(255, 0, 0) 'Regel ändern MeinBereich.FormatConditions(1).Modify xlCellValue, xlLess, "10" 'Regelfarbe ändern MeinBereich.FormatConditions(1).Interior.Color = vbGreen End Sub
Dieser Code erstellt ein Bereichsobjekt (A1:A10) und fügt eine Regel für Zahlen zwischen 100 und 150 hinzu. Wenn die Bedingung erfüllt ist, ändert sich die Zellenfarbe in rot.
Der Code ändert dann die Regel auf Zahlen unter 10. Wenn die Bedingung erfüllt ist, ändert sich die Zellenfarbe in grün.
Verwendung einer Farbskala
Die bedingte Formatierung von Excel bietet die Möglichkeit, eine Farbskala für einen Zahlenbereich in aufsteigender oder absteigender Reihenfolge zu verwenden.
Dies ist sehr nützlich, wenn Sie Daten wie Verkaufszahlen nach geografischem Gebiet, Temperaturen in Städten oder Entfernungen zwischen Städten haben. Die Verwendung von VBA hat den zusätzlichen Vorteil, dass Sie Ihr eigenes Farbschema und nicht nur die Standardfarben, die im Excel-Frontend angeboten werden, wählen können.
Sub Farbskala() Dim MeinBereich As Range 'Bereichsobjekt erstellen Set MeinBereich = Range("A1:A10") 'Vorherige bedingte Formatierung löschen MeinBereich.FormatConditions.Delete 'Art der Skala definieren MeinBereich.FormatConditions.AddColorScale ColorScaleType:=3 'Farbe für den niedrigsten Wert im Bereich auswählen MeinBereich.FormatConditions(1).ColorScaleCriteria(1).Type = _ xlConditionValueLowestValue With MeinBereich.FormatConditions(1).ColorScaleCriteria(1).FormatColor .Color = 7039480 End With 'Farbe für die mittleren Werte im Bereich auswählen MeinBereich.FormatConditions(1).ColorScaleCriteria(2).Type = _ xlConditionValuePercentile MeinBereich.FormatConditions(1).ColorScaleCriteria(2).Value = 50 ' Die Farbe für den Mittelpunkt des Bereichs auswählen With MeinBereich.FormatConditions(1).ColorScaleCriteria(2).FormatColor .Color = 8711167 End With 'Farbe für den höchsten Wert im Bereich auswählen MeinBereich.FormatConditions(1).ColorScaleCriteria(3).Type = _ xlConditionValueHighestValue With MeinBereich.FormatConditions(1).ColorScaleCriteria(3).FormatColor .Color = 8109667 End With End Sub
Wenn dieser Code ausgeführt wird, werden die Zellenfarben entsprechend den aufsteigenden Werten im Bereich A1:A10 abgestuft.
Dies ist eine sehr beeindruckende Art der Datendarstellung und wird sicherlich die Aufmerksamkeit der Benutzer auf sich ziehen.
Bedingte Formatierung für Fehlerwerte
Bei einer großen Datenmenge kann es leicht passieren, dass Sie einen Fehlerwert in Ihren verschiedenen Arbeitsblättern übersehen. Wenn dieser einem Benutzer präsentiert wird, ohne dass er behoben wird, kann dies zu großen Problemen führen und der Benutzer verliert das Vertrauen in die Zahlen. Diese Funktion verwendet den Regeltyp xlExpression und die Excel-Funktion ISTFEHLER (Engl. IsError), um die Zelle auszuwerten.
Sie können den Code so erstellen, dass alle Zellen mit Fehlern eine rote Farbe bekommen:
Sub BedingteFormatierungFuerFehlerBeispiel() Dim MeinBereich As Range 'Bereichsobjekt erstellen Set MeinBereich = Range("A1:A10") 'Vorherige bedingte Formatierungen löschen MeinBereich.FormatConditions.Delete 'Fehlerregel hinzufügen MeinBereich.FormatConditions.Add Type:=xlExpression, Formula1:="=IsError(A1)=True" 'Innenfarbe auf Rot setzen MeinBereich.FormatConditions(1).Interior.Color = RGB(255, 0, 0) End Sub
Bedingte Formatierung für Daten aus der Vergangenheit
Es könnte vorkommen, dass Sie Daten importieren, bei denen Sie Datensätze, die in der Vergangenheit liegen, hervorheben möchten. Ein Beispiel hierfür könnte ein Debitorenbericht sein, in dem Sie alte Rechnungsdaten, die älter als 30 Tage sind, hervorheben möchten.
Dieser Code verwendet den Regeltyp xlExpression und eine Excel-Funktion zur Auswertung der Daten.
Sub BedingteFormatierungFuerDatenAusVergangenheitBeispiel() Dim MeinBereich As Range 'Bereichsobjekt auf Grundlage einer Datumsspalte erstellen Set MeinBereich = Range("A1:A10") 'Vorherige bedingte Formatierung löschen MeinBereich.FormatConditions.Delete 'Regel für Daten aus der Vergangenheit hinzufügen MeinBereich.FormatConditions.Add Type:=xlExpression, Formula1:="=Now()-A1 > 30" 'Innenfarbe auf Rot setzen MeinBereich.FormatConditions(1).Interior.Color = RGB(255, 0, 0) End Sub
Dieser Code nimmt einen Datumsbereich im Bereich A1:A10 und setzt die Zellenfarbe für jedes Datum, das mehr als 30 Tage in der Vergangenheit liegt, auf Rot.
In der Formel, die in der Bedingung verwendet wird, gibt Now() das aktuelle Datum und die aktuelle Uhrzeit an. Dies wird jedes Mal neu berechnet, wenn das Arbeitsblatt neu berechnet wird, so dass sich die Formatierung von einem Tag auf den anderen ändert.
Datenbalken in der bedingten Formatierung in VBA verwenden
Sie können VBA verwenden, um einem Zahlenbereich Datenbalken hinzuzufügen. Diese sind fast so etwas wie Mini-Diagramme und geben einen sofortigen Überblick darüber, wie groß die Zahlen im Verhältnis zueinander sind. Durch die Annahme von Standardwerten für die Datenbalken ist der Code sehr einfach zu schreiben.
Sub DatenbalkenFormatierungBeispiel() Dim MeinBereich As Range Set MeinBereich = Range("A1:A10") MeinBereich.FormatConditions.Delete MeinBereich.FormatConditions.AddDatabar End Sub
Ihre Daten werden auf dem Arbeitsblatt wie folgt aussehen:
Symbole in der bedingten Formatierung in VBA verwenden
Sie können die bedingte Formatierung verwenden, um Symbole neben Ihren Zahlen in einem Arbeitsblatt einzufügen. Bei den Symbolen kann es sich um Pfeile, Kreise oder verschiedene andere Formen handeln. In diesem Beispiel fügt der Code Pfeilsymbole zu den Zahlen auf Grundlage ihrer Prozentwerte hinzu:
Sub SymbolsaetzeBeispiel() Dim MeinBereich As Range 'Bereichsobjekt erstellen Set MeinBereich = Range("A1:A10") 'Vorherige bedingte Formate löschen MeinBereich.FormatConditions.Delete 'Syymbolsatz zum FormatConditions-Objekt hinzufügen MeinBereich.FormatConditions.AddIconSetCondition 'Syymbolsatz auf Pfeile setzen - Bedingung 1 With MeinBereich.FormatConditions(1) .IconSet = ActiveWorkbook.IconSets(xl3Arrows) End With 'Die Symbolkriterien für den erforderlichen Prozentwert festlegen - Bedingung 2 With MeinBereich.FormatConditions(1).IconCriteria(2) .Type = xlConditionValuePercent .Value = 33 .Operator = xlGreaterEqual End With 'Die Symbolkriterien für den geforderten Prozentwert festlegen - Bedingung 3 With MeinBereich.FormatConditions(1).IconCriteria(3) .Type = xlConditionValuePercent .Value = 67 .Operator = xlGreaterEqual End With End Sub
Auf diese Weise erhalten Sie eine sofortige Anzeige, ob eine Zahl hoch oder niedrig ist. Nach der Ausführung dieses Codes sieht Ihr Arbeitsblatt wie folgt aus:
Bedingte Formatierung zum Hervorheben der Top-Fünf verwenden
Sie können einen VBA-Code verwenden, um die 5 wichtigsten Zahlen in einem Datenbereich hervorzuheben. Sie verwenden einen Parameter namens „AddTop10“, aber Sie können die Rangnummer im Code auf 5 setzen. Ein Benutzer möchte vielleicht die höchsten Zahlen in einem Bereich sehen, ohne die Daten erst sortieren zu müssen.
Sub Top5Beispiel() Dim MeinBereich As Range 'Bereichsobjekt erstellen Set MeinBereich = Range("A1:A10") 'Vorherige bedingte Formate löschen MeinBereich.FormatConditions.Delete 'Eine Top-10-Bedingung hinzufügen MeinBereich.FormatConditions.AddTop10 With MeinBereich.FormatConditions(1) 'Parameter von oben nach unten setzen .TopBottom = xlTop10Top 'Nur die obersten 5 festlegen .Rank = 5 End With With MeinBereich.FormatConditions(1).Font 'Die Schriftfarbe einstellen .Color = -16383844 End With With MeinBereich.FormatConditions(1).Interior 'Die Farbe des Zellenhintergrunds festlegen .Color = 13551615 End With End Sub
Die Daten auf Ihrem Arbeitsblatt würden nach Ausführung des Codes wie folgt aussehen:
Beachten Sie, dass der Wert 145 zweimal erscheint, so dass sechs Zellen hervorgehoben sind.
Bedeutung der Parameter StopIfTrue und SetFirstPriority
StopIfTrue ist von Bedeutung, wenn mehrere bedingte Formatierungsregeln für einen Zellenbereich gelten. Eine einzelne Zelle innerhalb des Bereichs kann die erste Regel erfüllen, aber auch die nachfolgenden Regeln. Als Entwickler möchten Sie vielleicht, dass sie nur die Formatierung für die erste Regel, auf die sie trifft, angezeigt. Andere Regelkriterien können sich überschneiden und unbeabsichtigte Änderungen bewirken, wenn sie in der Liste der Regeln weiter unten stehen.
Der Standardwert für diesen Parameter ist True, aber wenn Sie möchten, können Sie ihn ändern, so dass alle anderen Regeln für diese Zelle berücksichtigt werden:
MeinBereich. FormatConditions(1).StopIfTrue = False
Der Parameter SetFirstPriority legt fest, ob diese Bedingungsregel zuerst ausgewertet wird, wenn es mehrere Regeln für die Zelle gibt.
MeinBereich. FormatConditions(1).SetFirstPriority
Dies verschiebt die Position dieser Regel an Position 1 innerhalb der Sammlung von Formatierungsbedingungen und alle anderen Regeln werden mit geänderten Indexnummern nach unten verschoben. Seien Sie vorsichtig, wenn Sie im Code Änderungen an Regeln, die die Indexnummern verwenden, vornehmen. Sie müssen sicherstellen, dass Sie die richtige Regel ändern oder löschen.
Sie können die Priorität einer Regel folgendermaßen ändern:
MeinBereich. FormatConditions(1).Priority=3
Dadurch werden die relativen Positionen aller anderen Regeln innerhalb der Liste der bedingten Formatierungen geändert.
Bedingte Formatierung mit Verweis auf andere Zellenwerte verwenden
Dies ist eine Sache, die die bedingte Formatierung von Excel nicht kann. Sie können jedoch Ihren eigenen VBA-Code erstellen, um dies zu tun.
Nehmen wir an, Sie haben eine Datenspalte und in der Zelle neben jeder Zahl befindet sich ein Text, der angibt, welche Formatierung für die einzelnen Zahlen vorgenommen werden soll.
Der folgende Code durchläuft die Liste der Zahlen, sucht in der benachbarten Zelle nach Formatierungstext und formatiert die Zahl dann wie gewünscht:
Sub FuerBedingteFormatierungAufAndereZelleVerweisen() 'Variablen erstellen, um die Anzahl der Zeilen für die Tabellendaten zu speichern Dim R_Zeile As Long, N As Long 'Die Anzahl der Zeilen innerhalb des Tabellendatenbereichs ermitteln R_Zeile = ActiveSheet.UsedRange.Rows.Count 'Durch alle Zeilen im Tabellendatenbereich iterieren For N = 1 To R_Zeile 'Verwenden Sie eine Select-Case-Anweisung, um die Formatierung auf Grundlage von Spalte 2 auszuwerten Select Case ActiveSheet.Cells(N, 2).Value 'Die Innenfarbe in Blau umändern Case "Blau" ActiveSheet.Cells(N, 1).Interior.Color = vbBlue 'Die Innenfarbe in Rot umändern Case "Rot" ActiveSheet.Cells(N, 1).Interior.Color = vbRed 'Die Innenfarbe in Grün umändern Case "Grün" ActiveSheet.Cells(N, 1).Interior.Color = vbGreen End Select Next N End Sub
Nachdem dieser Code ausgeführt wurde, sieht Ihr Arbeitsblatt wie folgt aus:
Die Zellen, auf die sich die Formatierung bezieht, können sich an einer beliebigen Stelle im Arbeitsblatt oder sogar auf einem anderen Arbeitsblatt innerhalb der Arbeitsmappe befinden. Sie können jede beliebige Form von Text verwenden, um eine Bedingung für die Formatierung zu schaffen und Sie sind nur durch Ihre Vorstellungskraft in den Verwendungsmöglichkeiten dieses Codes eingeschränkt.
Operatoren, die in Anweisungen zur bedingten Formatierung verwendet werden können
Wie Sie in den vorherigen Beispielen gesehen haben, werden Operatoren verwendet, um zu bestimmen, wie die Bedingungswerte ausgewertet werden (z. B. xlBetween).
Es gibt eine Reihe dieser Operatoren, die verwendet werden können, je nachdem, wie Sie Ihre Regelkriterien angeben möchten.
Name | Wert | Beschreibung |
xlBetween | 1 | Zwischen. Kann nur verwendet werden, wenn zwei Formeln angegeben sind. |
xlEqual | 3 | Ist gleich. |
xlGreater | 5 | Größer als. |
xlGreaterEqual | 7 | Größer als oder gleich. |
xlLess | 6 | Kleiner als. |
xlLessEqual | 8 | Kleiner als oder gleich. |
xlNotBetween | 2 | Nicht zwischen. Kann nur verwendet werden, wenn zwei Formeln angegeben sind. |
xlNotEqual | 4 | Nicht gleich. |