Kurz gesagt — Die Hintergrundfarbe einer Zelle lebt auf ihrem
Interior-Objekt:Range("A1").Interior.Color = RGB(255, 242, 204). Es ist die Füllebene — die Farbe hinter dem Text — und wie jede Formatierung ändert sie das Aussehen, nicht den Wert. Zwei Dinge erwischen jeden. Erstens: Eine Füllung zu löschen istInterior.ColorIndex = xlNone, was nicht dasselbe ist wie sie weiß zu streichen. Zweitens, und wichtiger: Farbe trägt keine Daten.SUMundSUMIFkönnen sie nicht sehen, eine Arbeitsmappe, die Füllfarbe nutzt, um „Approved“ zu bedeuten, speichert also eine Kategorie irgendwo, wo keine Formel sie lesen kann.
' Die ganze Kopfzeile mit einer sanften Goldfuellung hervorheben.
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Sales")
ws.Range("A1:F1").Interior.Color = RGB(255, 242, 204)
' Eine Fuellung ganz entfernen (zurueck zu "No Fill", nicht weiss).
ws.Range("A2:F2").Interior.ColorIndex = xlNone
Zellen mit Farbe zu füllen ist eine der am häufigsten automatisierten Aufgaben in Excel, und sie
teilt ihr Farbmodell exakt mit der Font-Ebene — dieselbe Trennung von Color
und ColorIndex. Diese Anleitung konzentriert sich auf das, was an der Füllung anders ist: sie
korrekt zu löschen, und die größere Idee, dass eine gefärbte Zelle Dekoration ist, keine
Information. Sobald das einrastet, beantwortet sich die Frage „wie summiere ich die gelben Zellen“
von selbst — gar nicht, Sie reparieren die Daten.
Was Sie lernen
- Das mentale Modell —
Interiorist die Füllebene, die hinter dem Text sitzt - Füllfarbe mit
RGBsetzen und mitxlNonelöschen (nicht weiß) - Die wichtigste Regel — Farbe trägt keine Daten, und keine Formel kann sie lesen
- Nach Bedingung hervorheben ohne eine Schleife, die veraltet
- Viele getrennte Bereiche schnell mit
Unionfüllen - Eine Füllfarbe zurücklesen, und die
xlNone-Falle
Das mentale Modell: Interior ist die Füllebene
Eine Zelle hat drei visuelle Ebenen, jede über ihr eigenes Objekt erreichbar: den Text
(Font), die Füllung dahinter (Interior) und wie die Zahl angezeigt wird
(NumberFormat). Interior ist die mittlere — die Farbe an der Wand
hinter der Schrift. Ihre Haupteigenschaft ist Color, und sie nutzt dasselbe Farbmodell wie Font:
RGB(r, g, b) für jede Farbe oder ColorIndex für die alte 56-Felder-Palette.
Weil es das Farbmodell teilt, gilt hier dieselbe Regel wie in der Font-Anleitung: setzen mit
.Color = RGB(...), und verwechseln Sie .Color nie mit .ColorIndex. Interior.Color = 6 ist
ein Fast-Schwarz RGB(6,0,0); Interior.ColorIndex = 6 ist Gelb. Bleiben Sie in einem Zahlenraum.
Eine Füllung löschen: xlNone ist nicht Weiß
Hier ist die erste füllungsspezifische Falle. Um einen Hintergrund zu entfernen, gibt es zwei Dinge, die auf dem Bildschirm gleich aussehen, es aber nicht sind:
ws.Range("A1").Interior.Color = RGB(255, 255, 255) ' STREICHT sie weiss
ws.Range("A1").Interior.ColorIndex = xlNone ' ENTFERNT die Fuellung (No Fill)
Auf einem leeren Blatt sehen beide weiß aus, man hält sie also leicht für gleichwertig. Sind sie
nicht. Eine weiße Füllung ist immer noch eine Füllung — sie verdeckt Gitternetzlinien, sie druckt als
weißer Block, und sie meldet Interior.Pattern = xlSolid. xlNone bedeutet gar keine Füllung:
Gitternetzlinien scheinen durch, nichts wird gedruckt, und die Zelle ist wirklich frei von
Formatierung. Wenn Sie einen Bereich zurücksetzen — etwa die Hervorhebungen des letzten Laufs
löschen, bevor Sie neue anwenden — wollen Sie fast immer xlNone, nicht Weiß. Weiß zu streichen ist
ein Bug, der später auftaucht, auf einem Ausdruck oder über einem gefärbten Blatt, wo der weiße Block
plötzlich heraussticht.
Die wichtigste Regel: Farbe trägt keine Daten
Das ist die Idee, die eine saubere Arbeitsmappe von einer fragilen trennt. Eine Füllfarbe trägt
keinen Wert. Keine Formel kann sie lesen. SUM addiert eine gelbe Zelle genau wie eine weiße;
SUMIF, COUNTIF und IF haben keinen Operator für „ist hervorgehoben“. In dem Moment also, in dem
Sie Farbe nutzen, um etwas zu bedeuten — goldene Zellen sind genehmigt, rote Zeilen sind
überfällig, Grün heißt bezahlt —, haben Sie eine Kategorie an einem Ort gespeichert, den die
Rechen-Engine nicht sehen kann.
' Wenn "approved" zaehlt, gehoert es in einen Wert, nicht nur in eine Farbe.
ws.Range("H2").Value = "Approved" ' eine Formel kann das lesen
ws.Range("A2:H2").Interior.Color = RGB(198, 239, 206) ' die Farbe ist die Folge, nicht die Quelle
Die praktische Regel: legen Sie die Bedeutung in eine Zelle und lassen Sie die Farbe folgen.
Fügen Sie eine Status-Spalte hinzu, schreiben Sie „Approved“ oder „Overdue“ hinein und treiben Sie
die Füllung daraus (idealerweise mit bedingter Formatierung, siehe unten). Dann funktioniert
COUNTIF(Status, "Overdue"), Filter funktionieren, Pivots funktionieren — und die Farbe ist nur ein
visuelles Echo eines Werts, der tatsächlich existiert. Manche greifen über .Interior.ColorIndex in
einer Schleife doch zum „nach Farbe summieren“, und es geht, aber es zu brauchen ist fast immer ein
Zeichen, dass die Kategorie von Anfang an ein echter Wert hätte sein sollen.
Nach Bedingung hervorheben: eine Regel, keine veraltende Schleife
Genau wie bei der Schriftfarbe erzeugt es, die Füllfarbe mit einer schlichten Schleife aus einer Bedingung zu treiben, eine einmalige Momentaufnahme, die verrottet, sobald sich die Daten ändern:
' Nur Momentaufnahme - erneuter Lauf nach jeder Aenderung noetig.
Dim c As Range
For Each c In ws.Range("B2:B1000")
If c.Value < 0 Then c.Interior.Color = RGB(255, 199, 206)
Next c
Für Farbe, die Live-Werten folgen soll, setzen Sie einmal eine Regel der bedingten Formatierung und lassen Excel sie für immer neu auswerten:
With ws.Range("B2:B1000").FormatConditions
.Delete
.Add(Type:=xlCellValue, Operator:=xlLess, Formula1:="0").Interior.Color = RGB(255, 199, 206)
End With
Reservieren Sie die direkte Interior.Color-Schleife für statisches Hervorheben — einen
einmaligen Bericht, den Sie gleich einfrieren und exportieren. Für alles, was korrekt bleiben soll,
während das Blatt bearbeitet wird, ist ein FormatCondition das richtige Werkzeug. Das ist dieselbe
Abwägung wie bei der Font-Ebene, und es lohnt sich, sie einmal zu verinnerlichen: Schleifen malen
Momentaufnahmen, Regeln bleiben lebendig.
Viele Bereiche schnell mit Union füllen
Die Füllung eines Bereichs zu setzen ist sofort erledigt. Hunderte verstreute Zellen einzeln in einer
Schleife zu färben ist langsam, weil jede Zuweisung ein eigener Umweg zu Excel ist. Sammeln Sie die
Zellen mit Union in einen einzigen Bereich und streichen Sie sie in einem Zug:
Dim target As Range, c As Range
For Each c In ws.Range("B2:B1000")
If c.Value < 0 Then
If target Is Nothing Then Set target = c Else Set target = Union(target, c)
End If
Next c
If Not target Is Nothing Then target.Interior.Color = RGB(255, 199, 206)
Die Schleife entscheidet weiterhin, welche Zellen, aber der teure Teil — das tatsächliche Anwenden
der Füllung — geschieht einmal für den ganzen Union, statt tausendmal. (Für einen zusammenhängenden
Block brauchen Sie Union gar nicht; färben Sie einfach den ganzen Range in einer Anweisung.) Die
allgemeine Regel über jede Formatierungsebene hinweg: entscheiden in der Schleife, anwenden auf den
Bereich.
Eine Füllfarbe zurücklesen
Interior.Color zu lesen gibt den 24-Bit-Wert zurück, den Sie gesetzt haben (intern als BGR
gespeichert, vergleichen Sie ihn also gegen ein RGB(...), statt die rohe Ganzzahl zu lesen). Das
Eine, worauf Sie achten müssen, ist der Fall „keine Füllung“:
Debug.Print ws.Range("A1").Interior.ColorIndex ' -4142 (xlNone), wenn es keine Fuellung gibt
Debug.Print ws.Range("A1").Interior.Color ' 16777215 bei weisser Fuellung - sieht aus wie "weiss", nicht "leer"
Wenn Sie wissen müssen, ob eine Zelle ungefüllt ist, prüfen Sie Interior.ColorIndex = xlNone,
nicht den Color-Wert — denn eine ausdrücklich weiße Zelle gibt einen gültigen Color zurück und
würde eine farbbasierte Prüfung täuschen. Das ist das lese-seitige Echo der Regel „Weiß ist nicht
xlNone“ von vorhin.
Wie ExcelMaster hilft
Zellfüllungen wirken einfach, bis die Ränder auftauchen: xlNone gegenüber Weiß, eine
Hervorhebungs-Schleife, die eine Regel hätte sein sollen, Farbe, die als Kategorie genutzt wird, die
keine Formel lesen kann, und eine Schleife pro Zelle, die kriecht. Jeder davon ist ein leiser Bug —
eine veraltete Hervorhebung, ein „nach Farbe summieren“-Umweg, ein langsames Makro.
ExcelMaster lässt Sie das
Ergebnis beschreiben. Sagen Sie „hebe überfällige Zeilen hervor“ oder „schattiere die Kopfzeile und
lösche die Farben des letzten Monats“, und es schreibt Interior.Color = RGB(...) für einen
statischen Durchgang oder einen FormatCondition, wenn die Farbe den Daten folgen soll, löscht mit
xlNone, statt Weiß zu streichen, und wendet alles auf einmal auf den ganzen Bereich an. Und wenn
Sie es bitten, „genehmigte Bestellungen zu markieren“, legt es den Status zuerst in eine echte Spalte
— damit die Farbe etwas bedeutet, das eine Formel wirklich zählen kann. Sie behalten die
Arbeitsmappe und den Code.
Häufig gestellte Fragen
Wie setze ich die Hintergrundfarbe einer Zelle in Excel VBA?
Nehmen Sie Range("A1").Interior.Color = RGB(red, green, blue) — zum Beispiel RGB(255, 242, 204)
für ein sanftes Gold. Interior ist das Füllobjekt, und Color nimmt einen 24-Bit-RGB-Wert, der
jede Farbe abdeckt. Nehmen Sie Interior.ColorIndex = n (ein Paletten-Platz von 1 bis 56) nur, wenn
Sie eine alte, palettenbasierte Arbeitsmappe abgleichen, und mischen Sie die zwei Zahlenräume nicht.
Wie entferne oder lösche ich die Füllfarbe einer Zelle in VBA?
Setzen Sie Range("A1").Interior.ColorIndex = xlNone. Das entfernt die Füllung vollständig, sodass
Gitternetzlinien durchscheinen und nichts gedruckt wird. Interior.Color = RGB(255,255,255) zu
setzen streicht die Zelle nur weiß, was immer noch eine Füllung ist und sich auf Ausdrucken und über
gefärbten Blättern anders verhält. Um Hervorhebungen zurückzusetzen, nehmen Sie xlNone.
Kann ich Zellen in VBA nach ihrer Farbe summieren oder zählen?
Nicht mit SUM, SUMIF oder COUNTIF — diese Formeln können Füllfarbe überhaupt nicht sehen. Sie
können Interior.Color oder Interior.ColorIndex Zelle für Zelle in einer VBA-Schleife prüfen, aber
es zu brauchen ist ein Zeichen, dass die Kategorie ein echter Wert sein sollte. Schreiben Sie
„Approved“ oder „Overdue“ in eine Status-Spalte und zählen Sie das stattdessen; lassen Sie die Farbe
ein visuelles Echo des Werts sein.
Warum veraltet meine Hervorhebung, nachdem ich das Blatt bearbeite?
Weil eine For Each ... Interior.Color-Schleife eine einmalige Momentaufnahme anwendet; sie läuft
nicht erneut, wenn sich Werte ändern. Für Füllfarbe, die den Daten folgen soll, fügen Sie eine Regel
der bedingten Formatierung mit Range(...).FormatConditions.Add hinzu, die Excel automatisch neu
auswertet. Nutzen Sie eine direkte Füll-Schleife nur für einen statischen Bericht, den Sie einfrieren
wollen.
Wie färbe ich viele verstreute Zellen in VBA schnell?
Bauen Sie mit Union in Ihrer Schleife einen einzigen Range und setzen Sie dann .Interior.Color
einmal auf diesen kombinierten Bereich, statt jede Zelle zu färben, sobald Sie sie finden. Die
Füllung einmal auf den ganzen Union anzuwenden vermeidet einen eigenen Umweg pro Zelle. Für einen
zusammenhängenden Block lassen Sie Union weg und färben den ganzen Bereich in einer Anweisung.
Getestet in
Getestet in: Excel 365 (Windows 11), VBA 7.1 — zuletzt geprüft am 11.08.2026.
Verwandte Anleitungen: VBA Font · VBA NumberFormat · VBA Range · VBA With · VBA For-Schleife
