VBA POČET

Tento tutoriál vám ukáže, ako používať funkciu Excel COUNT vo VBA

Funkcia VBA COUNT sa používa na spočítanie počtu buniek vo vašom pracovnom hárku, ktoré obsahujú hodnoty. Je k nemu prístup pomocou metódy WorksheetFunction vo VBA.

COUNT pracovný list

Objekt WorksheetFunction je možné použiť na vyvolanie väčšiny funkcií programu Excel, ktoré sú k dispozícii v dialógovom okne Vložiť funkciu v programe Excel. Funkcia COUNT je jednou z nich.

123 Sub TestCountFunctinoRozsah ("D33") = Application.WorksheetFunction.Count (Rozsah ("D1: D32"))Koniec pod

Vo funkcii COUNT môžete mať až 30 argumentov. Každý z argumentov musí odkazovať na určitý rozsah buniek.

Tento príklad nižšie spočíta, koľko buniek je obsadených hodnotami v bunkách D1 až D9

123 Vedľajší testovací počet ()Rozsah ("D10") = Application.WorksheetFunction.Count (rozsah ("D1: D9"))Koniec pod

Nasledujúci príklad spočíta, koľko hodnôt je v rozsahu v stĺpci D a v rozsahu v stĺpci F. Ak nezadáte objekt Application, bude sa to predpokladať.

123 Viacnásobný testovací počet ()Rozsah ("G8") = WorksheetFunction.Count (rozsah ("G2: G7"), rozsah ("H2: H7"))Koniec pod

Priradenie výsledku počítania premennej

Výsledok svojho vzorca môžete chcieť použiť inde v kóde, než ho písať priamo späť do programu Excel Range. Ak je to tak, môžete výsledok priradiť k premennej, ktorá sa má použiť neskôr vo vašom kóde.

1234567 Sub AssignCount ()Stmaviť výsledok ako celé číslo„Priraďte premennúvýsledok = WorksheetFunction.Count (rozsah ("H2: H11"))„Ukáž výsledokMsgBox „Počet buniek obsadených hodnotami je“ & výsledokKoniec pod

COUNT s objektom rozsahu

K objektu Range môžete priradiť skupinu buniek a potom použiť tento objekt Range s príponou Pracovný listFunkcia predmet.

123456789 Sub TestCountRange ()Dim rng As Range'priradiť rozsah buniekNastaviť rng = rozsah ("G2: G7")„použite rozsah vo vzorciRozsah ("G8") = WorksheetFunction.Count (rng)'uvoľnite predmet dosahuNastaviť rng = ničKoniec pod

COUNT objektov viacerých rozsahov

Podobne môžete počítať, koľko buniek je naplnených hodnotami vo viacerých objektoch rozsahu.

123456789101112 Sub TestCountMultipleRanges ()Dim rngA ako rozsahDim rngB ako rozsah'priradiť rozsah buniekNastaviť rngA = rozsah ("D2: D10")Nastaviť rngB = rozsah ("E2: E10")„použite rozsah vo vzorciRozsah ("E11") = WorksheetFunction.Count (rngA, rngB)'uvoľnite predmet dosahuNastaviť rngA = ničNastaviť rngB = ničKoniec pod

Použitie COUNTA

Počet bude počítať iba HODNOTY v bunkách, nebude počítať bunku, ak je v bunke text. Na počítanie buniek, ktoré sú naplnené akýmkoľvek druhom údajov, by sme museli použiť funkciu COUNTA.

123 Sub TestCountA ()Rozsah ("B8) = Application.WorksheetFunction.CountA (rozsah (" B1: B6 "))Koniec pod

V nižšie uvedenom príklade by funkcia COUNT vrátila nulu, pretože v stĺpci B nie sú žiadne hodnoty, zatiaľ čo v stĺpci C by vrátila hodnotu 4. Funkcia COUNTA by však bunky s textom spočítala a vrátila by hodnotu 5 v stĺpci B, pričom stále vracia hodnotu 4 v stĺpci C.

Použitie COUNTBLANKS

Funkcia COUNTBLANKS bude počítať iba prázdne bunky v rozsahu buniek - tj bunky, v ktorých nie sú žiadne údaje.

123 Sub TestCountBlank ()Rozsah ("B8) = Application.WorksheetFunction.CountBlanks (rozsah (" B1: B6 "))Koniec pod

V nižšie uvedenom príklade nemá stĺpec B prázdne bunky, zatiaľ čo stĺpec C obsahuje jednu prázdnu bunku.

Použitie funkcie COUNTIF

Ďalšou funkciou pracovného hárka, ktorú je možné použiť, je funkcia COUNTIF.

123456 Sub TestCountIf ()Rozsah ("H14") = WorksheetFunction.CountIf (rozsah ("H2: H10"), "> 0")Rozsah ("H15") = WorksheetFunction.CountIf (rozsah ("H2: H10"), "> 100")Rozsah ("H16") = WorksheetFunction.CountIf (rozsah ("H2: H10"), "> 1000")Rozsah ("H17") = WorksheetFunction.CountIf (rozsah ("H2: H10"), "> 10 000")Koniec pod

Vyššie uvedený postup bude počítať bunky s hodnotami v nich iba vtedy, ak sú kritériá zhodné - väčšie ako 0, väčšie ako 100, väčšie ako 1 000 a vyššie ako 10 000. Aby vzorec fungoval správne, musíte kritériá vložiť do úvodzoviek.

Nevýhody funkcie WorksheetFunction

Keď použijete Pracovný listFunkcia na spočítanie hodnôt v rozsahu v hárku sa vráti statická hodnota, nie flexibilný vzorec. To znamená, že keď sa vaše údaje v Exceli zmenia, hodnota, ktorú vrátil súbor Pracovný listFunkcia sa nezmení.

Vo vyššie uvedenom príklade postup TestCount spočítal bunky v stĺpci H, kde je prítomná hodnota. Ako vidíte na paneli vzorcov, tento výsledok je údaj a nie vzorec.

Ak sa teda ktorákoľvek z hodnôt zmení v rozsahu (H2: H12), výsledky v H14 sa zmenia NIE zmeniť.

Namiesto použitia WorksheetFunction.Count, môžete použiť VBA na použitie funkcie počítania na bunku pomocou Vzorec alebo Formula R1C1 metódy.

Použitie metódy vzorca

Metóda vzorca vám umožňuje konkrétne poukázať na rozsah buniek, napr .: H2: H12, ako je uvedené nižšie.

123 Vzorec čiastkového testovacieho počtuRozsah ("H14"). Vzorec = "= Počet (H2: H12)"Koniec pod

Použitie metódy FormulaR1C1

Metóda FromulaR1C1 je flexibilnejšia v tom, že vás neobmedzuje na určitý rozsah buniek. Nasledujúci príklad nám poskytne rovnakú odpoveď ako vyššie.

123 Vzorec čiastkového testu ()Rozsah ("H14"). Vzorec = "= počet (R [-9] C: R [-1] C)"Koniec pod

Aby bol však vzorec flexibilnejší, mohli by sme kód zmeniť tak, aby vyzeral takto:

123 Vzorec čiastkového testu ()ActiveCell.FormulaR1C1 = "= Počet (R [-11] C: R [-1] C)"Koniec pod

Nech ste kdekoľvek v pracovnom hárku, vzorec potom spočíta hodnoty v 12 bunkách priamo nad ním a odpoveď vloží do vášho ActiveCell. Na rozsah vo funkcii COUNT je potrebné odkazovať pomocou syntaxe riadka (R) a stĺpca (C).

Obe tieto metódy vám umožňujú používať vzorce Dynamic Excel vo VBA.

Teraz bude namiesto hodnoty vzorec v H14.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave