Excel VBA COUNTA-functie

Mogelijk hebt u vaak de functies COUNT en COUNTA in Microsoft Excel gebruikt. Waar COUNT alle numerieke waarden in een cel vastlegt, legt COUNTA alle niet-lege cellen (inclusief tekenreeksen) vast. Is het op alle mogelijke manieren mogelijk om de COUNTA-functie te gebruiken via VBA? Absoluut ja! U kunt de functie COUNTA gebruiken via VBA als een werkbladfunctie (omdat het een onderdeel is van de WorksheetFunction-familie binnen VBA) om de niet-lege cellen te tellen via een bepaald werkbladbereik. Het voordeel van COUNTA boven de functie COUNT is - het kan alles tellen (getallen, tekenreeksen, speciale tekens, foutwaarden, enz.) Behalve lege cellen in een bepaald bereik, terwijl COUNT alleen het aantal cellen kan tellen dat de numerieke waarden bevat .

VBA COUNTA Syntaxis:

De syntaxis voor de VBA COUNTA-functie is zoals hieronder weergegeven:

Waar,

Arg1 - Specificeert het argument voor deze functie dat verplicht is en elke niet-lege waarde kan aannemen, zoals nummer, string, foutwaarden (zoals # N / A, # DIV / 0!), Speciale tekens, etc. andere argumenten zijn optioneel.

Deze functie kan maximaal 30 argumenten in een enkele oproep aannemen. Een argument kan bestaan ​​uit een cellenbereik of een enkele waarde die handmatig wordt ingevoerd.

Hoe de COUNTA-functie te gebruiken in Excel VBA?

Hieronder staan ​​de verschillende voorbeelden om de COUNTA-functie in Excel te gebruiken met behulp van VBA-code.

U kunt deze VBA COUNTA Excel-sjabloon hier downloaden - VBA COUNTA Excel-sjabloon

Voorbeeld # 1 - VBA COUNTA met handmatige argumenten als invoer

We zullen zien hoe de functie COUNTA werkt wanneer we er handmatige argumenten voor bieden in VBA. Volg de onderstaande stappen:

Stap 1: Voeg een nieuwe module in Visual Basic Editor (VBE) in. Klik op het tabblad Invoegen > selecteer Module.

Stap 2: Definieer een nieuwe subprocedure binnen de nieuw ingevoegde module, die uw macro kan bevatten.

Code:

 Sub Voorbeeld_1 () Einde Sub 

Stap 3: Bepaal waar we de uitvoer voor de COUNTA-functie willen opslaan. Ik wil het opslaan in cel A2 van blad met de naam " Voorbeeld 1 ". Om dat te doen, moeten we de Sheets.Range- methode in VBA gebruiken. Zie de volgende screenshot voor uw referentie:

Code:

 Sub Voorbeeld_1 () Bladen ("Voorbeeld 1"). Bereik ("A2") Einde Sub 

Dit stuk code selecteert de cel A2 als een bereik uit het blad met de naam Voorbeeld 1.

Stap 4: Gebruik een toewijzingsoperator zodat we de waarde kunnen toewijzen aan de cel waartoe toegang wordt verkregen via de bovenstaande code. Voeg het object met de naam WorksheetFunction toe zodat we de COUNTA-functie eronder kunnen openen.

Code:

 Sub Voorbeeld_1 () Spreadsheets ("Voorbeeld 1"). Bereik ("A2") = Werkblad Functie Einde Sub 

Stap 5: Plaats een punt (.) Achter het opgegeven object en u ziet een lijst met beschikbare functies om eronder te gebruiken. Selecteer COUNTA uit de lijst met meerdere beschikbare functies waarmee u de niet-lege cellen of waarden kunt tellen.

Stap 6: Geef de argumenten handmatig op onder de functie COUNTA. Argumenten zijn: "Rajnish", "# N / A", 1, "*", True. We hebben geprobeerd alle gegevenstypen als argument voor deze functie te gebruiken.

Code:

 Sub Voorbeeld_1 () Spreadsheets ("Voorbeeld 1"). Bereik ("A2") = WorksheetFunction.CountA ("Rajnish", "# N / A", 1, "*", True) End Sub 

Stap 7: Voer dit stuk code uit door op F5 of de knop Uitvoeren te drukken en bekijk de uitvoer onder cel A2 van blad " Voorbeeld 1 " in de actieve werkmap.

In deze code willen we dat het systeem de invoerargumenten telt en de telling opslaat onder cel A2 van blad Voorbeeld 1.

Voorbeeld # 2 - VBA COUNTA om niet-lege cellen in een gegeven bereik te tellen

Stel dat ik gegevens in kolom A heb en dat ik moet tellen wat de niet-lege rijen in de hele kolom zijn. Omdat de hele kolom uit meer dan 10 rijen van Lac bestaat, is het een ideale tijdrovende taak om naar elke niet-lege cel te navigeren en deze te tellen. Bekijk de gedeeltelijke screenshot van de gegevens hieronder.

Volg de onderstaande stappen:

Stap 1: Definieer een nieuwe subprocedure die uw macro kan bevatten.

Code:

 Sub Voorbeeld_2 () Einde Sub 

Stap 2: Definieer twee nieuwe variabelen onder deze subprocedure als een bereik met dim . Eén variabele kan nuttig zijn om het bereik van de invoerargumentkolom vast te houden en andere variabelen zullen nuttig zijn om de cel te houden waar we de uitvoer als een geteld getal willen hebben.

Code:

 Sub Voorbeeld_2 () Dim rng_1 als bereik Dim op_cell als bereik einde Sub 

Hier slaat rng_1 het invoerbereik op voor de COUNTA-functie. De uitvoer van COUNTA wordt opgeslagen onder de variabele op_cell .

Stap 3: Stel nu het bereik voor beide variabelen in met de eigenschap VBA Set. Dit moet worden gedaan omdat we niet rechtstreeks een waarde kunnen toewijzen aan een variabele die is gedefinieerd als een bereikobject.

Code:

 Sub Voorbeeld_2 () Dim rng_1 als bereik Dim op_cell als bereik Stel rng_1 = bereik in ("A: A") Stel op_cell = bereik in ("B1") Einde Sub 

Hier is de variabele rng_1 ingesteld op het bereik van de volledige kolom met de naam A. op_cell is ingesteld op cel B1 omdat dit de cel is die de uitvoer van de COUNTA bevat.

Stap 4: Gebruik nu de algemene toewijzingsoperator tegen de variabele op_cell, zodat we de uitvoer kunnen opslaan onder de cel die is ingesteld op die variabele. Dit kan worden beschouwd als een uitgangsinitialisatie.

Code:

 Sub Voorbeeld_2 () Dim rng_1 als bereik Dim op_cell als bereik Stel rng_1 = bereik in ("A: A") Stel op_cell = bereik in ("B1") op_cell = End Sub 

Stap 5: Gebruik het WorksheetFunction-object aan de rechterkant van de toewijzingsoperator (het zou een expressie zijn die wordt geëvalueerd en de waarde wordt opgeslagen onder de cel ingesteld op variabele op_cell) om de klasse te initialiseren waarbinnen we toegang hebben tot en kunnen gebruiken COUNTA-functie.

Code:

 Sub Voorbeeld_2 () Dim rng_1 als bereik Dim op_cell als bereik Stel rng_1 = bereik in ("A: A") Stel op_cell = bereik in ("B1") op_cell = Werkblad Functie End Sub 

Stap 6: Zodra u punt (.) Na het WorksheetFunction-object raakt, hebt u toegang tot alle functies die beschikbaar zijn onder die klasse. Navigeer naar de functie COUNTA en dubbelklik erop om te selecteren.

Stap 7: Gebruik de variabele rng_1 als invoerargument onder COUNTA. Daarom kan deze functie onder werkbladfunctie objectklasse de niet-lege cellen tellen die aanwezig zijn in de hele kolom A.

Code:

 Sub Voorbeeld_2 () Dim rng_1 als bereik Dim op_cell als bereik Set rng_1 = bereik ("A: A") Stel op_cell = bereik ("B1") op_cell = WorksheetFunction.CountA (rng_1) End Sub 

Stap 8: Voer deze code uit door op de knop F5 of Uitvoeren te drukken en u kunt de uitvoer zien zoals hieronder weergegeven in cel B1 van een actief blad uit de werkmap.

In cel B1 zien we een getal als 17. Wat betekent dat we 17 niet-lege cellen in kolom A van het werkblad hebben. Je ziet misschien helemaal niet de 17 via deze screenshot omdat het een gedeeltelijke is. Je kunt beter het werkblad zien en door kolom A navigeren.

Dingen om te onthouden

  • U kunt de VBA COUNTA-functie gebruiken wanneer u het aantal niet-lege cellen in het gegeven bereik moet tellen.
  • COUNTA houdt rekening met alle waarden zoals getallen, tekenreeksen, foutwaarden, Booleans, lege tekst (""). Het houdt echter geen rekening met de cel die leeg is.
  • De lege cellen worden niet geteld met de functie COUNTA en worden genegeerd.
  • U kunt argumenten handmatig gebruiken in de VBA COUNTA-functie en het werkt nog steeds.

Aanbevolen artikelen

Dit is een handleiding voor de VBA COUNTA-functie. Hier bespreken we hoe u de COUNTA-functie in Excel VBA kunt gebruiken, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. Hoe maak je een verzamelobject in VBA?
  2. Hoe tekens in Excel te tellen?
  3. FileCopy in VBA (voorbeelden met Excel-sjabloon)
  4. Tel cellen met tekst in Excel | Excel-sjabloon

Categorie: