Laden Sie die Beispielarbeitsmappe herunter
Dieses Tutorial zeigt Ihnen, wie Sie mit VBA Zellen einer bestimmten Hintergrundfarbe zählen oder summieren.
Betrachten Sie den folgenden Bereich in Excel.
Es gibt keine eingebaute Excel-Funktion, um farbige Zellen zu zählen. Stattdessen müssen wir eine benutzerdefinierte Funktion mit VBA erstellen.
Zellen zählen - Erstellen Sie eine benutzerdefinierte VBA-Funktion
Um mit VBA zu zählen, wie viele Zellen eine bestimmte Farbe haben, müssen Sie eine benutzerdefinierte Funktion (UDF) erstellen, die alle Zellen im Bereich durchläuft und bestimmt, ob die Hintergrundfarbe jeder Zelle mit der von Ihnen angegebenen Hintergrundfarbe übereinstimmt testen und dann diese Funktion im Excel-Arbeitsblatt verwenden.
In VBA erstellen wir eine Funktion zum Zählen ausgewählter Zellen.
12345678910111213141516 | Funktion CountCellsByColor (rng als Bereich, ColorCell als Bereich) als DoubleDim dblCount As DoubleDim rngCell als Bereich'Schleife durch jede Zelle im BereichFür jede rngCell in rng'Überprüfen Sie, ob die Innenfarbe die gleiche Farbe wie die von Ihnen ausgewählte Zelle hatWenn rngCell.Interior.Color = ColorCell.Interior.Color ThenWenn IsNumeric(rngCell.Value) = True Then'erhöhen Sie die Zählung um 1, wenn die Farbe richtig ist.dblCount = dblCount + 1Ende WennEnde WennNächste'Wert an Excel zurückgebenCountCellsByColor = dblCountEndfunktion |
Verwenden Sie dann diese Funktion im Arbeitsblatt, um den Wert zurückzugeben.
1 | =CountCellsByColor(B2:E10,G4) |
- Klicken Sie in die orangefarbene Zelle in G4 und dann auf Funktion einfügen.
- Auswählen Benutzerdefinierten als Kategorie und wählen Sie dann CountCellsByColor als zu verwendende Funktion.
- Klicken OK.
- Markieren Sie den Bereich, der alle farbigen Zellen enthält.
- Wähle aus Farbzelle, und klicken Sie dann auf OK.
Wiederholen Sie den Vorgang, um die Zellen mit grüner Hintergrundfarbe zu zählen.
1 | =CountCellsByColor(B2:E10,G5) |
Summenzellen - Erstellen Sie eine benutzerdefinierte VBA-Funktion
Wir erstellen eine ähnliche benutzerdefinierte Funktion in VBA, um die Werte der Zellen einer bestimmten Farbe zu summieren.
12345678910111213141516 | Funktion SumCellsByColor(rng As Range, ColorCell As Range) als DoubledblSum als Double dimmenDim rngCell als Bereich'Schleife durch jede Zelle im BereichFür jede rngCell in rng'Überprüfen Sie, ob die Innenfarbe die gleiche Farbe wie die von Ihnen ausgewählte Zelle hatWenn rngCell.Interior.Color = ColorCell.Interior.Color ThenWenn IsNumeric(rngCell.Value) = True Then'füge den Wert zu deiner Variablen hinzu, wenn die Farbe korrekt istdblSum= dblSum + rngCell.ValueEnde WennEnde WennNächste'Wert an Excel zurückgebenSumCellsByColor = dblSumEndfunktion |
Diese Funktion würden wir dann noch einmal im Arbeitsblatt verwenden, um die benötigten Zellen zu summieren.
1 | =SumCellsByColor(B2:E10,G7) |