Excel VBA COUNTA-funktion

Du har ofta använt funktionerna COUNT och COUNTA inom Microsoft Excel. Då COUNT fångar alla numeriska värden i en cell, fångar COUNTA alla icke-tomma celler (inklusive strängar). Är det på något sätt möjligt att använda COUNTA-funktionen via VBA? Absolut ja! Du kan använda COUNTA-funktionen via VBA som en kalkylarkfunktion (eftersom den är en del av kalkylfunktionsfamiljen i VBA) för att räkna de icke-tomma cellerna genom ett visst kalkylblad. Fördelen med COUNTA över COUNT-funktion är - den kan räkna vad som helst (nummer, strängar, specialtecken, Felvärden etc.) förutom tomma celler i ett visst intervall medan COUNT bara kan räkna antalet celler som består av numeriska värden .

VBA COUNTA Syntax:

Syntaxen för VBA COUNTA-funktionen är som visas nedan:

Var,

Arg1 - Anger argumentet för den här funktionen som är obligatorisk och kan ta alla icke-tomma värden som nummer, sträng, felvärden (som # N / A, # DIV / 0!), Specialtecken etc. resten andra argument är valfri.

Denna funktion kan ta högst 30 argument i ett enda samtal. Ett argument kan bestå av ett antal celler eller ett enda värde som matas in manuellt.

Hur använder jag COUNTA-funktionen i Excel VBA?

Nedan finns de olika exemplen att använda COUNTA-funktionen i Excel med VBA-kod.

Du kan ladda ner denna VBA COUNTA Excel-mall här - VBA COUNTA Excel-mall

Exempel 1 - VBA COUNTA med manuella argument som ingång

Vi kommer att se hur COUNTA-funktionen fungerar när vi tillhandahåller manuella argument för den i VBA. Följ nedanstående steg:

Steg 1: Sätt i en ny modul i Visual Basic Editor (VBE). Klicka på Infoga- fliken> välj Modul.

Steg 2: Definiera en ny delprocedur i den nyligen infogade modulen, som kan hålla ditt makro.

Koda:

 Subexempel_1 () Avsluta sub 

Steg 3: Bestäm var vi vill lagra utdata för COUNTA-funktionen. Jag vill lagra det i cell A2 i arket med namnet “ Exempel 1 ”. För att göra det måste vi använda Sheets.Range- metoden i VBA. Se följande skärmdump för din referens:

Koda:

 Subexempel_1 () Ark ("Exempel 1"). Område ("A2") Slut Sub 

Denna koddel väljer cellen A2 som ett intervall från arket som heter Exempel 1.

Steg 4: Använd en tilldelningsoperatör så att vi kan tilldela värdet till cellen som ska nås via koden ovan. Lägg till objektet som heter WorksheetFunction så att vi kan komma åt COUNTA-funktionen under den.

Koda:

 Subexempel_1 () Ark ("Exempel 1"). Område ("A2") = KalkylarkFunktionsslutsub 

Steg 5: Sätt en punkt (.) Efter att objektet har specificerats så ser du en lista över funktioner tillgängliga att använda under den. Välj COUNTA i listan med flera tillgängliga funktioner som låter dig räkna de icke-tomma cellerna eller värdena.

Steg 6: Ange argumenten manuellt under COUNTA-funktionen. Argument är: "Rajnish", "# N / A", 1, "*", True. Vi har försökt att föra alla datatyper som ett argument till den här funktionen.

Koda:

 Subexempel_1 () Ark ("Exempel 1"). Område ("A2") = KalkylarkFunktion.KontoA ("Skräp", "# N / A", 1, "*", Sann) 

Steg 7: Kör denna kodkod genom att trycka på F5 eller Kör- knappen och se utgången under cell A2 i arket “ Exempel 1 ” i den aktiva arbetsboken.

I den här koden vill vi att systemet ska räkna in inputargumenten och lagra räkningen under cell A2 i arket Exempel 1.

Exempel 2 - VBA COUNTA för att räkna icke-tomma celler inom ett givet intervall

Anta att jag har data över kolumn A och jag måste räkna vilka rader som inte är tomma i hela kolumnen. Eftersom hela kolumnen består av mer än 10 Lacs rader är det en idealisk tidskrävande för mig att navigera mot och räkna varje icke-tom cell. Se den delvisa skärmdumpen av informationen nedan.

Följ stegen nedan:

Steg 1: Definiera en ny delprocedur som kan hålla ditt makro.

Koda:

 Sub Exempel_2 () Slut Sub 

Steg 2: Definiera två nya variabler under denna delprocedur som ett intervall med Dim . En variabel kommer att vara till hjälp för att hålla intervallet för inmatningsargumentkolumn och andra variabler kommer att vara till hjälp för att hålla cellen där vi vill ha utdatan som ett räknat nummer.

Koda:

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

Här lagrar rng_1 ingångsområdet för COUNTA-funktionen. COUNTA-utgången lagras under variabel op_cell .

Steg 3: Ställ nu in intervallet för båda variablerna med egenskapen VBA Set. Detta ska göras eftersom vi inte direkt kan tilldela ett värde till en variabel definierad som ett intervallobjekt.

Koda:

 Subexempel_2 () Dim rng_1 Som Range Dim op_cell Som Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") End Sub 

Här har variabel rng_1 ställts in på intervallet för hela kolumnen med namnet A. op_cell är inställd på cell B1 eftersom det skulle vara cellen som innehåller utgången från COUNTA.

Steg 4: Använd nu den allmänna tilldelningsoperatören mot op_cell-variabeln så att vi kan lagra utgången under cellen som är inställd på den variabeln. Detta kan betraktas som en utgångsinitialisering.

Koda:

 Subexempel_2 () Dim rng_1 Som Range Dim op_cell Som Range Set rng_1 = Range ("A: A") Ställ op_cell = Range ("B1") op_cell = End Sub 

Steg 5: Använd WorksheetFunction-objekt till höger om tilldelningsoperatören (det skulle vara ett uttryck som kommer att utvärderas och värdet kommer att lagras under celluppsättningen till variabel op_cell) för att initiera klassen inom vilken vi kan komma åt och använda COUNTA-funktion.

Koda:

 Subexempel_2 () Dim rng_1 Som Range Dim op_cell Som Range Set rng_1 = Range ("A: A") Ställ op_cell = Range ("B1") op_cell = WorksheetFunction End Sub 

Steg 6: Så snart du träffar dot (.) Efter WorksheetFunction-objektet kan du få åtkomst till alla tillgängliga funktioner under den klassen. Navigera mot COUNTA-funktionen och dubbelklicka på den för att välja.

Steg 7: Använd variabel rng_1 som ett inmatningsargument under COUNTA. Därför kan denna funktion under kalkylfunktionsobjektklassen räkna de icke-tomma cellerna som finns i hela kolumnen A.

Koda:

 Subexempel_2 () Dim rng_1 Som Range Dim op_cell Som Range Set rng_1 = Range ("A: A") Ställ op_cell = Range ("B1") op_cell = WorksheetFunction.CountA (rng_1) End Sub 

Steg 8: Kör den här koden genom att trycka på F5 eller Run-knappen och du kan se utgången som visas nedan i cell B1 i ett aktivt ark från arbetsboken.

I cell B1 kan vi se ett nummer som 17. Vilket innebär att vi har 17 icke-tomma celler närvarande i kolumn A i kalkylbladet. Du kanske inte ser alls 17 genom denna skärmdump eftersom det är en delvis. Du kan bättre se kalkylbladet och navigera genom kolumn A.

Saker att komma ihåg

  • Du kan använda VBA COUNTA-funktionen när du måste räkna antalet icke-tomma celler som finns i det angivna intervallet.
  • COUNTA tar hänsyn till alla värden som nummer, strängar, felvärden, booléer, tom text (“”). Den tar dock inte hänsyn till cellen som är tom.
  • De tomma cellerna räknas inte med COUNTA-funktionen och ignoreras.
  • Du kan använda argument manuellt i VBA COUNTA-funktionen och det fungerar fortfarande.

Rekommenderade artiklar

Detta är en guide till VBA COUNTA-funktion. Här diskuterar vi hur man använder COUNTA-funktionen i Excel VBA tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. Hur skapar jag ett samlingsobjekt i VBA?
  2. Hur räknar jag tecken i Excel?
  3. FileCopy i VBA (exempel med Excel-mall)
  4. Räkna celler med text i Excel | Excel-mall

Kategori: