Excel VBA COUNTA-Funktion

Möglicherweise haben Sie die Funktionen COUNT und COUNTA häufig in Microsoft Excel verwendet. Während COUNT alle numerischen Werte in einer Zelle erfasst, erfasst COUNTA alle nicht leeren Zellen (einschließlich Zeichenfolgen). Ist die Verwendung der COUNTA-Funktion über VBA überhaupt möglich? Absolut ja! Sie können die COUNTA-Funktion über VBA als Arbeitsblattfunktion verwenden (da sie Teil der WorksheetFunction-Familie in VBA ist), um die nicht leeren Zellen in einem bestimmten Arbeitsblattbereich zu zählen. Der Vorteil der COUNTA-Funktion gegenüber der COUNT-Funktion besteht darin, dass alles (Zahlen, Zeichenfolgen, Sonderzeichen, Fehlerwerte usw.) außer leeren Zellen in einem bestimmten Bereich gezählt werden kann, wohingegen COUNT nur die Anzahl der Zellen zählen kann, die die numerischen Werte enthalten .

VBA COUNTA-Syntax:

Die Syntax für die VBA COUNTA-Funktion lautet wie folgt:

Wo,

Arg1 - Gibt das Argument für diese Funktion an, das obligatorisch ist und einen beliebigen nicht leeren Wert annehmen kann, z. B. Zahl, Zeichenfolge, Fehlerwerte (wie z. B. # N / A, # DIV / 0!), Sonderzeichen usw. Andere Argumente sind Optional.

Diese Funktion kann maximal 30 Argumente in einem einzigen Aufruf annehmen. Ein Argument kann aus einem Zellenbereich oder einem einzelnen Wert bestehen, der manuell eingegeben wird.

Wie verwende ich die COUNTA-Funktion in Excel VBA?

Nachfolgend finden Sie verschiedene Beispiele für die Verwendung der COUNTA-Funktion in Excel mithilfe von VBA-Code.

Sie können diese VBA COUNTA Excel-Vorlage hier herunterladen - VBA COUNTA Excel-Vorlage

Beispiel # 1 - VBA COUNTA mit manuellen Argumenten als Eingabe

Wir werden sehen, wie die COUNTA-Funktion funktioniert, wenn wir in VBA manuelle Argumente dafür bereitstellen. Befolgen Sie die folgenden Schritte:

Schritt 1: Fügen Sie ein neues Modul in Visual Basic Editor (VBE) ein. Klicken Sie auf die Registerkarte Einfügen und wählen Sie Modul.

Schritt 2: Definieren Sie eine neue Subprozedur innerhalb des neu eingefügten Moduls, die Ihr Makro aufnehmen kann.

Code:

 Sub Example_1 () End Sub 

Schritt 3: Entscheiden Sie, wo die Ausgabe für die COUNTA-Funktion gespeichert werden soll. Ich möchte es in Zelle A2 des Blattes mit dem Namen " Beispiel 1 " speichern. Dazu müssen Sie die Sheets.Range- Methode in VBA verwenden. Der folgende Screenshot dient als Referenz:

Code:

 Sub Example_1 () Sheets ("Beispiel 1"). Range ("A2") End Sub 

Dieser Code wählt die Zelle A2 als Bereich aus dem Blatt mit dem Namen Beispiel 1 aus.

Schritt 4: Verwenden Sie einen Zuweisungsoperator, damit wir den Wert der Zelle zuweisen können, auf die über den obigen Code zugegriffen werden soll. Fügen Sie das Objekt mit dem Namen WorksheetFunction hinzu, damit wir auf die COUNTA-Funktion zugreifen können.

Code:

 Sub Example_1 () Sheets ("Beispiel 1"). Range ("A2") = WorksheetFunction End Sub 

Schritt 5: Fügen Sie nach dem angegebenen Objekt einen Punkt (.) Ein. Daraufhin wird eine Liste der verfügbaren Funktionen angezeigt. Wählen Sie COUNTA aus der Liste der mehreren verfügbaren Funktionen aus, mit denen Sie die nicht leeren Zellen oder Werte zählen können.

Schritt 6: Geben Sie die Argumente manuell unter der Funktion COUNTA an. Argumente sind: "Rajnish", "# N / A", 1, "*", True. Wir haben versucht, alle Datentypen als Argument für diese Funktion zu verwenden.

Code:

 Sub Example_1 () Sheets ("Beispiel 1"). Range ("A2") = WorksheetFunction.CountA ("Rajnish", "# N / A", 1, "*", True) End Sub 

Schritt 7: Führen Sie diesen Code aus, indem Sie F5 oder die Schaltfläche Ausführen drücken, und sehen Sie die Ausgabe unter Zelle A2 von Blatt " Beispiel 1 " in der aktiven Arbeitsmappe.

In diesem Code soll das System die Eingabeargumente zählen und die Anzahl in Zelle A2 von Blatt Beispiel 1 speichern.

Beispiel 2 - VBA COUNTA, um nicht leere Zellen in einem bestimmten Bereich zu zählen

Angenommen, ich habe Daten in Spalte A und muss die nicht leeren Zeilen in der gesamten Spalte zählen. Da die gesamte Spalte aus mehr als 10 Lac-Zeilen besteht, ist es für mich ideal, zu jeder nicht leeren Zelle zu navigieren und sie zu zählen. Siehe den Teil-Screenshot der Daten unten.

Befolgen Sie die folgenden Schritte:

Schritt 1: Definieren Sie eine neue Unterprozedur, die Ihr Makro aufnehmen kann.

Code:

 Sub Example_2 () End Sub 

Schritt 2: Definieren Sie unter dieser Teilprozedur zwei neue Variablen als Range mit Dim . Eine Variable ist hilfreich, um den Bereich der Eingabeargumentspalte zu halten, und andere Variablen sind hilfreich, um die Zelle zu halten, in der die Ausgabe als gezählte Zahl erfolgen soll.

Code:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell As Range End Sub 

Hier speichert rng_1 den Eingabebereich für die COUNTA-Funktion. Die Ausgabe von COUNTA wird unter der Variablen op_cell gespeichert.

Schritt 3: Legen Sie jetzt den Bereich für beide Variablen mithilfe der VBA-Set-Eigenschaft fest. Dies ist erforderlich, da wir einer Variablen, die als Bereichsobjekt definiert ist, keinen direkten Wert zuweisen können.

Code:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") End Sub 

Hier wurde die Variable rng_1 auf den Bereich der gesamten Spalte mit dem Namen A festgelegt. Op_cell wird auf Zelle B1 festgelegt, da dies die Zelle ist, die die Ausgabe von COUNTA enthält.

Schritt 4: Verwenden Sie jetzt den allgemeinen Zuweisungsoperator für die Variable op_cell, damit wir die Ausgabe unter der Zelle speichern können, die auf diese Variable festgelegt ist. Dies kann als Ausgangsinitialisierung angesehen werden.

Code:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = End Sub 

Schritt 5: Verwenden Sie das WorksheetFunction-Objekt auf der rechten Seite des Zuweisungsoperators (es wäre ein Ausdruck, der ausgewertet und der Wert wird unter der auf die Variable op_cell gesetzten Zelle gespeichert), um die Klasse zu initialisieren, auf die wir zugreifen und die wir verwenden können COUNTA-Funktion.

Code:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = WorksheetFunction End Sub 

Schritt 6: Sobald Sie nach dem WorksheetFunction-Objekt auf Punkt (.) Klicken, können Sie auf alle Funktionen zugreifen, die unter dieser Klasse verfügbar sind. Navigieren Sie zur COUNTA-Funktion und doppelklicken Sie darauf, um sie auszuwählen.

Schritt 7: Verwenden Sie die Variable rng_1 als Eingabeargument unter COUNTA. Daher kann diese Funktion unter der Arbeitsblattfunktionsobjektklasse die nicht leeren Zellen zählen, die in der gesamten Spalte A vorhanden sind.

Code:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = WorksheetFunction.CountA (rng_1) End Sub 

Schritt 8: Führen Sie diesen Code aus, indem Sie die Taste F5 oder Ausführen drücken, und Sie können die Ausgabe wie unten in Zelle B1 eines aktiven Arbeitsblatts in der Arbeitsmappe anzeigen.

In Zelle B1 sehen wir eine Zahl mit 17. Dies bedeutet, dass in Spalte A des Arbeitsblatts 17 nicht leere Zellen vorhanden sind. Möglicherweise sehen Sie die 17 in diesem Screenshot überhaupt nicht, da es sich um einen Teil handelt. Sie können das Arbeitsblatt besser sehen und durch Spalte A navigieren.

Dinge, an die man sich erinnern sollte

  • Sie können die VBA COUNTA-Funktion verwenden, wenn Sie die Anzahl der nicht leeren Zellen im angegebenen Bereich zählen müssen.
  • COUNTA berücksichtigt alle Werte wie Zahlen, Zeichenfolgen, Fehlerwerte, Boolesche Werte und leeren Text (""). Die leere Zelle wird jedoch nicht berücksichtigt.
  • Die leeren Zellen werden mit der COUNTA-Funktion nicht gezählt und ignoriert.
  • Sie können Argumente manuell in der VBA COUNTA-Funktion verwenden, und es funktioniert weiterhin.

Empfohlene Artikel

Dies ist eine Anleitung zur VBA COUNTA-Funktion. Hier besprechen wir die Verwendung der COUNTA-Funktion in Excel VBA zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. Wie erstelle ich ein Sammlungsobjekt in VBA?
  2. Wie zähle ich Zeichen in Excel?
  3. FileCopy in VBA (Beispiele mit Excel-Vorlage)
  4. Zellen mit Text in Excel zählen | Excel-Vorlage

Kategorie: