VBA-ZÄHLER

Dieses Tutorial zeigt Ihnen, wie Sie die Excel COUNT-Funktion in VBA verwenden

Die VBA COUNT-Funktion wird verwendet, um die Anzahl der Zellen in Ihrem Arbeitsblatt zu zählen, die Werte enthalten. Der Zugriff erfolgt über die WorksheetFunction-Methode in VBA.

COUNT Arbeitsblattfunktion

Das WorksheetFunction-Objekt kann verwendet werden, um die meisten Excel-Funktionen aufzurufen, die im Dialogfeld Funktion einfügen in Excel verfügbar sind. Die COUNT-Funktion ist eine davon.

123 Sub TestCountFunctinoRange("D33") = Application.WorksheetFunction.Count(Range("D1:D32"))End Sub

Sie können bis zu 30 Argumente in der COUNT-Funktion haben. Jedes der Argumente muss sich auf einen Zellbereich beziehen.

In diesem Beispiel unten wird gezählt, wie viele Zellen mit Werten gefüllt sind, die sich in den Zellen D1 bis D9 befinden

123 Unter TestCount()Range("D10") = Application.WorksheetFunction.Count(Range("D1:D9"))End Sub

Im folgenden Beispiel wird gezählt, wie viele Werte sich in einem Bereich in Spalte D und in einem Bereich in Spalte F befinden. Wenn Sie das Application-Objekt nicht eingeben, wird es angenommen.

123 Unter TestCountMultiple()Range("G8") = WorksheetFunction.Count(Range("G2:G7"), Range("H2:H7"))End Sub

Zuweisen eines Zählergebnisses zu einer Variablen

Möglicherweise möchten Sie das Ergebnis Ihrer Formel an anderer Stelle im Code verwenden, anstatt es direkt in den Excel-Bereich zurückzuschreiben. In diesem Fall können Sie das Ergebnis einer Variablen zuweisen, die später in Ihrem Code verwendet wird.

1234567 Sub AssignCount()Dim-Ergebnis As Integer'Variable zuweisenresult = WorksheetFunction.Count(Range("H2:H11"))'Ergebnis anzeigenMsgBox "Die Anzahl der mit Werten gefüllten Zellen ist" & resultEnd Sub

COUNT mit einem Range-Objekt

Sie können dem Range-Objekt eine Gruppe von Zellen zuweisen und dieses Range-Objekt dann mit dem ArbeitsblattFunktion Objekt.

123456789 Unter TestCountRange()Dim rng As Range'Zellbereich zuweisenSetze rng = Bereich("G2:G7")'benutze den Bereich in der FormelRange("G8") = WorksheetFunction.Count(rng)'Entferne das EntfernungsobjektSetze rng = NichtsEnd Sub

COUNT Objekte mit mehreren Reichweiten

Ebenso können Sie zählen, wie viele Zellen mit Werten in mehreren Bereichsobjekten gefüllt sind.

123456789101112 Unter TestCountMultipleRanges()Dim rngA als BereichDim rngB als Bereich'Zellbereich zuweisenSetze rngA = Range("D2:D10")Setze rngB = Range("E2:E10")'benutze den Bereich in der FormelRange("E11") = WorksheetFunction.Count(rngA, rngB)'Entferne das EntfernungsobjektSetze rngA = NichtsSetze rngB = NichtsEnd Sub

Verwendung von COUNTA

Die Zählung zählt nur die WERTE in Zellen, es wird die Zelle nicht gezählt, wenn die Zelle Text enthält. Um die Zellen zu zählen, die mit irgendwelchen Daten gefüllt sind, müssen wir die COUNTA-Funktion verwenden.

123 Unter TestCountA()Range("B8) = Application.WorksheetFunction.CountA(Range("B1:B6"))End Sub

Im folgenden Beispiel würde die COUNT-Funktion eine Null zurückgeben, da in Spalte B keine Werte vorhanden sind, während sie eine 4 für Spalte C zurückgeben würde. Die COUNTA-Funktion würde jedoch die Zellen mit Text zählen und einen Wert von zurückgeben 5 in Spalte B, während in Spalte C immer noch der Wert 4 zurückgegeben wird.

Verwenden von COUNTBLANKS

Die Funktion COUNTBLANKS zählt nur die leeren Zellen im Zellenbereich - dh Zellen, die überhaupt keine Daten enthalten.

123 Unter TestCountBlank()Range("B8) = Application.WorksheetFunction.CountBlanks(Range("B1:B6"))End Sub

Im folgenden Beispiel enthält Spalte B keine leeren Zellen, während Spalte C eine leere Zelle enthält.

Verwenden der ZÄHLENWENN-Funktion

Eine weitere Arbeitsblattfunktion, die verwendet werden kann, ist die ZÄHLENWENN-Funktion.

123456 Unter TestCountIf()Range("H14") = WorksheetFunction.CountIf(Range("H2:H10"), ">0")Range("H15") = WorksheetFunction.CountIf(Range("H2:H10"), ">100")Range("H16") = WorksheetFunction.CountIf(Range("H2:H10"), ">1000")Range("H17") = WorksheetFunction.CountIf(Range("H2:H10"), ">10000")End Sub

Das obige Verfahren zählt die Zellen mit Werten nur dann, wenn die Kriterien übereinstimmen - größer als 0, größer als 100, größer als 1000 und größer als 10000. Sie müssen die Kriterien in Anführungszeichen setzen, damit die Formel richtig funktioniert.

Nachteile von WorksheetFunction

Wenn Sie das verwenden ArbeitsblattFunktion Um die Werte in einem Bereich in Ihrem Arbeitsblatt zu zählen, wird ein statischer Wert zurückgegeben, keine flexible Formel. Das bedeutet, wenn sich Ihre Zahlen in Excel ändern, wird der Wert, der von der ArbeitsblattFunktion wird sich nicht ändern.

Im obigen Beispiel hat die Prozedur TestCount die Zellen in Spalte H hochgezählt, in denen ein Wert vorhanden ist. Wie Sie in der Bearbeitungsleiste sehen können, handelt es sich bei diesem Ergebnis um eine Zahl und nicht um eine Formel.

Wenn sich daher einer der Werte im Bereich (H2:H12) ändert, werden die Ergebnisse in H14 NICHT Veränderung.

Anstatt die ArbeitsblattFunktion.Anzahl, können Sie mit VBA eine Zählfunktion auf eine Zelle anwenden Formel oder FormelR1C1 Methoden.

Verwenden der Formelmethode

Mit der Formelmethode können Sie gezielt auf einen Zellbereich zeigen, zB: H2:H12, wie unten gezeigt.

123 Sub TestCountFormulaRange("H14").Formula = "=Count(H2:H12)"End Sub

Verwenden der FormelR1C1-Methode

Die FromulaR1C1-Methode ist flexibler, da sie Sie nicht auf einen bestimmten Zellbereich einschränkt. Das folgende Beispiel gibt uns die gleiche Antwort wie das obige.

123 Unter TestCountFormula()Range("H14").Formula = "=Count(R[-9]C:R[-1]C)"End Sub

Um die Formel jedoch flexibler zu gestalten, könnten wir den Code so ändern, dass er wie folgt aussieht:

123 Unter TestCountFormula()ActiveCell.FormulaR1C1 = "=Anzahl(R[-11]C:R[-1]C)"End Sub

Wo auch immer Sie sich in Ihrem Arbeitsblatt befinden, die Formel zählt dann die Werte in den 12 Zellen direkt darüber und fügt die Antwort in Ihre ActiveCell ein. Auf den Bereich innerhalb der COUNT-Funktion muss mit der Zeilen- (R) und Spalte (C)-Syntax verwiesen werden.

Mit beiden Methoden können Sie dynamische Excel-Formeln in VBA verwenden.

In H14 gibt es jetzt eine Formel anstelle eines Wertes.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave