Excel VBA COUNTA-funktion

Du har måske ofte brugt COUNT og COUNTA-funktionerne i Microsoft Excel. Hvor COUNT indfanger alle de numeriske værdier i en celle, fanger COUNTA alle de ikke-tomme celler (inklusive strenge). Er det på nogen måde muligt at bruge COUNTA-funktion gennem VBA? Selvfølgelig ja! Du kan bruge COUNTA-funktionen gennem VBA som en regnearkfunktion (da den er en del af WorksheetFunction-familien i VBA) til at tælle de ikke-tomme celler gennem et givet regnearkområde. Fordelen ved COUNTA over COUNT-funktion er - den kan tælle alt (tal, strenge, specialtegn, Fejlværdier osv.) Undtagen tomme celler i et givet interval, mens COUNT kun kan tælle antallet af celler, der består af de numeriske værdier .

VBA COUNTA syntaks:

Syntaks for VBA COUNTA-funktion er som vist nedenfor:

Hvor,

Arg1 - Specificerer argumentet for denne funktion, der er obligatorisk og kan tage en hvilken som helst ikke-tom værdi såsom nummer, streng, fejlværdier (som # N / A, # DIV / 0!), Specialtegn osv. Resten andre argumenter er valgfri.

Denne funktion kan maksimalt tage 30 argumenter i et enkelt opkald. Et argument kan bestå af et område af celler eller en enkelt værdi, der indtastes manuelt.

Hvordan bruges COUNTA-funktion i Excel VBA?

Nedenfor er de forskellige eksempler på COUNTA-funktion i Excel ved hjælp af VBA-kode.

Du kan downloade denne VBA COUNTA Excel-skabelon her - VBA COUNTA Excel-skabelon

Eksempel # 1 - VBA COUNTA med manuelle argumenter som input

Vi vil se, hvordan COUNTA-funktion fungerer, når vi leverer manuelle argumenter til den i VBA. Følg nedenstående trin:

Trin 1: Indsæt et nyt modul i Visual Basic Editor (VBE). Klik på fanen Indsæt > vælg Modul.

Trin 2: Definer en ny underprocedure i det nyligt indsatte modul, der kan indeholde din makro.

Kode:

 Undereksempel_1 () Slut sub 

Trin 3: Bestem, hvor vi vil gemme output til COUNTA-funktionen. Jeg vil gemme det i celle A2 på arket kaldet “ Eksempel 1 ”. For at gøre det, er vi nødt til at bruge Sheets.Range- metode i VBA. Se følgende skærmbillede for din reference:

Kode:

 Undereksempel_1 () Ark ("Eksempel 1"). Område ("A2") Slutunderdel 

Dette kodestykke vælger cellen A2 som et interval fra det ark, der hedder eksempel 1.

Trin 4: Brug en tildelingsoperatør, så vi kan tildele værdien til den celle, der vil få adgang til via koden ovenfor. Tilføj objektet med navnet WorksheetFunction, så vi kan få adgang til COUNTA-funktionen under det.

Kode:

 Subeksempel_1 () Ark ("Eksempel 1"). Område ("A2") = ArbejdsarkFunktionssluttesub 

Trin 5: Sæt en prik (.) Efter det angivne objekt, og du vil se en liste over tilgængelige funktioner under den. Vælg COUNTA fra listen over flere tilgængelige funktioner, der giver dig mulighed for at tælle de ikke-tomme celler eller værdier.

Trin 6: Specificer argumenterne manuelt under COUNTA-funktionen. Argumenter er: “Rajnish”, “# N / A”, 1, “*”, sandt. Vi har forsøgt at bringe alle datatyperne som et argument til denne funktion.

Kode:

 Subeksempel_1 () Ark ("Eksempel 1"). Område ("A2") = ArbejdsarkFunktion.TællingA ("Pudsning", "# N / A", 1, "*", sandt) Slut sub 

Trin 7: Kør dette stykke kode ved at trykke på F5 eller Run- knappen og se output under celle A2 i arket “ Eksempel 1 ” i den aktive projektmappe.

I denne kode ønsker vi, at systemet skal tælle input-argumenterne og gemme antallet under celle A2 i arket Eksempel 1.

Eksempel 2 - VBA COUNTA til at tælle ikke-tomme celler inden for et givet område

Antag, at jeg har data på tværs af kolonne A, og jeg er nødt til at tælle, hvad der er de ikke-tomme rækker i hele kolonnen. Da hele søjlen består af mere end 10 Lac's rækker, er det en ideel tidskrævende for mig at navigere mod og tælle hver ikke-tom celle. Se det delvise skærmbillede af dataene nedenfor.

Følg nedenstående trin:

Trin 1: Definer en ny underprocedure, der kan indeholde din makro.

Kode:

 Undereksempel_2 () Slutundert 

Trin 2: Definer to nye variabler under denne underprocedure som et interval ved hjælp af Dim . En variabel vil være nyttig til at holde området med inputargumentkolonne, og andre variabler vil være nyttige til at holde cellen, hvor vi vil have output som et talt antal.

Kode:

 Subeksempel_2 () Dim rng_1 Som rækkevidde Dim op_cell Som rækkevidde Sub 

Her gemmer rng_1 inputområdet for COUNTA-funktionen. COUNTA's output gemmes under variablen op_cell .

Trin 3: Indstil nu området for begge variabler ved hjælp af egenskaben VBA Set. Dette skal gøres, fordi vi ikke direkte kan tildele en værdi til en variabel defineret som et intervalobjekt.

Kode:

 Undereksempel_2 () Dim rng_1 Som rækkevidde Dim op_cell Som rækkevidde sæt rng_1 = Område ("A: A") Indstil op_cell = Range ("B1") Slut Sub 

Her er rng_1-variablen indstillet til området for hele kolonnen med navnet A. op_cell er indstillet til celle B1, da det ville være den celle, der indeholder output fra COUNTA.

Trin 4: Brug nu den generelle tildelingsoperatør mod op_cell-variabel, så vi kan gemme output under cellen, der er indstillet til denne variabel. Dette kan betragtes som en outputinitialisering.

Kode:

 Undereksempel_2 () Dim rng_1 Som rækkevidde Dim op_cell Som rækkevidde sæt rng_1 = Område ("A: A") Indstil op_cell = Range ("B1") op_cell = End Sub 

Trin 5: Brug WorksheetFunction-objekt i højre side af tildelingsoperatøren (det ville være et udtryk, der bliver evalueret, og værdien gemmes under celleindstillingen til variabel op_cell) til at initialisere den klasse, hvori vi kan få adgang til samt bruge COUNTA-funktion.

Kode:

 Undereksempel_2 () Dim rng_1 Som Range Dim op_cell Som Range Set rng_1 = Range ("A: A") Indstil op_cell = Range ("B1") op_cell = WorksheetFunction End Sub 

Trin 6: Så snart du rammer dot (.) Efter WorksheetFunction-objektet, kan du få adgang til alle de tilgængelige funktioner under den klasse. Naviger mod COUNTA-funktionen og dobbeltklik på den for at vælge.

Trin 7: Brug variablen rng_1 som et inputargument under COUNTA. Derfor kan denne funktion under regnearkets funktionsobjektklasse tælle de ikke-tomme celler, der findes i hele kolonnen A.

Kode:

 Undereksempel_2 () Dim rng_1 Som Range Dim op_cell Som Range Set rng_1 = Range ("A: A") Indstil op_cell = Range ("B1") op_cell = WorksheetFunction.CountA (rng_1) End Sub 

Trin 8: Kør denne kode ved at trykke på F5 eller Run-knappen, og du kan se output som vist nedenfor i celle B1 på et aktivt ark fra projektmappen.

I celle B1 kan vi se et tal som 17. Hvilket betyder, at vi har 17 ikke-tomme celler til stede i kolonne A på regnearket. Du ser måske slet ikke de 17 gennem dette skærmbillede, da det er delvis. Du kunne bedre se arbejdsarket og navigere gennem kolonne A.

Ting at huske

  • Du kan bruge VBA COUNTA-funktionen, når du skal tælle antallet af ikke-tomme celler, der er til stede i det givne interval.
  • COUNTA betragter alle værdier som tal, strenge, fejlværdier, booleanere, tom tekst (“”). Den overvejer dog ikke den celle, der er tom.
  • De tomme celler tælles ikke med COUNTA-funktionen og ignoreres.
  • Du kan bruge argumenter manuelt i VBA COUNTA-funktionen, og den fungerer stadig.

Anbefalede artikler

Dette er en guide til VBA COUNTA-funktion. Her diskuterer vi, hvordan man bruger COUNTA-funktion i Excel VBA sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. Sådan oprettes samleobjekt i VBA?
  2. Sådan tæller du tegn i Excel?
  3. FileCopy i VBA (eksempler med Excel-skabelon)
  4. Tæl celler med tekst i Excel | Excel-skabelon

Kategori: