VBA POČET

Tento tutoriál vám ukáže, jak používat funkci Excel COUNT ve VBA

Funkce VBA COUNT se používá k počítání počtu buněk v listu, které obsahují hodnoty. Je přístupný pomocí metody WorksheetFunction ve VBA.

COUNT pracovní list

Objekt WorksheetFunction lze použít k volání většiny funkcí aplikace Excel, které jsou k dispozici v dialogovém okně Vložit funkci v aplikaci Excel. Funkce COUNT je jednou z nich.

123 Dílčí testovací částFunctinoRozsah ("D33") = Application.WorksheetFunction.Count (Rozsah ("D1: D32"))End Sub

Ve funkci COUNT můžete mít až 30 argumentů. Každý z argumentů musí odkazovat na rozsah buněk.

Tento příklad níže spočítá, kolik buněk je naplněno hodnotami v buňkách D1 až D9

123 Dílčí testovací počet ()Rozsah ("D10") = Application.WorksheetFunction.Count (rozsah ("D1: D9"))End Sub

Následující příklad spočítá, kolik hodnot je v rozsahu ve sloupci D a v rozsahu ve sloupci F. Pokud nezadáte objekt Application, bude se předpokládat.

123 Dílčí testovací množstvíVícenásobné ()Rozsah ("G8") = WorksheetFunction.Count (Rozsah ("G2: G7"), Rozsah ("H2: H7"))End Sub

Přiřazení výsledku Count proměnné

Možná budete chtít použít výsledek vzorce jinde v kódu, než abyste ho psali přímo zpět do a rozsahu Excelu. Pokud tomu tak je, můžete výsledek přiřadit proměnné, kterou použijete později v kódu.

1234567 Sub AssignCount ()Dim výsledek jako celé číslo"Přiřaďte proměnnou."result = WorksheetFunction.Count (Range ("H2: H11"))„Ukaž výsledekMsgBox "Počet buněk naplněných hodnotami" & resultEnd Sub

COUNT s objektem rozsahu

K objektu Range můžete přiřadit skupinu buněk a poté použít tento Range objekt s Pracovní list Funkce objekt.

123456789 Dílčí TestCountRange ()Dim rng As Range'přiřaďte rozsah buněkNastavit rng = rozsah ("G2: G7")'použijte rozsah ve vzorci.'Rozsah ("G8") = WorksheetFunction.Count (rng)'uvolněte předmět dosahuNastavit rng = NicEnd Sub

COUNT objekty více rozsahů

Podobně můžete spočítat, kolik buněk je naplněno hodnotami ve více objektech rozsahu.

123456789101112 Dílčí testovací částMultipleRanges ()Dim rngA jako rozsahDim rngB jako rozsah'přiřaďte rozsah buněkNastavit rngA = rozsah ("D2: D10")Nastavit rngB = rozsah ("E2: E10")'použijte rozsah ve vzorci.'Rozsah ("E11") = WorksheetFunction.Count (rngA, rngB)'uvolněte předmět dosahuNastavit rngA = NicNastavit rngB = NicEnd Sub

Použití COUNTA

Počet bude počítat pouze HODNOTY v buňkách, nebude počítat buňku, pokud buňka obsahuje text. K počítání buněk, které jsou naplněny jakýmkoli druhem dat, bychom museli použít funkci COUNTA.

123 Dílčí testovací množstvíA ()Rozsah ("B8) = Application.WorksheetFunction.CountA (rozsah (" B1: B6 "))End Sub

V níže uvedeném příkladu by funkce COUNT vrátila nulu, protože ve sloupci B nejsou žádné hodnoty, zatímco ve sloupci C by vrátila hodnotu 4. Funkce COUNTA by však buňky s textem v nich spočítala a vrátila by hodnotu 5 ve sloupci B, přičemž stále vrací hodnotu 4 ve sloupci C.

Pomocí COUNTBLANKS

Funkce COUNTBLANKS bude počítat pouze prázdné buňky v rozsahu buněk - tj. Buňky, které v sobě nemají vůbec žádná data.

123 Dílčí testovací částkaBlank ()Rozsah ("B8) = Application.WorksheetFunction.CountBlanks (rozsah (" B1: B6 "))End Sub

V níže uvedeném příkladu nemá sloupec B žádné prázdné buňky, zatímco sloupec C má jednu prázdnou buňku.

Použití funkce COUNTIF

Další funkcí listu, kterou lze použít, je funkce COUNTIF.

123456 Dílčí testovací částka ()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")End Sub

Výše uvedený postup započítá buňky s hodnotami v nich pouze v případě, že jsou kritéria shodná - větší než 0, větší než 100, větší než 1 000 a větší než 10 000. Aby vzorec fungoval správně, musíte kritéria vložit do uvozovek.

Nevýhody funkce WorksheetFunction

Když použijete Pracovní list Funkce pro počítání hodnot v rozsahu v listu je vrácena statická hodnota, nikoli flexibilní vzorec. To znamená, že když se vaše čísla v Excelu změní, hodnota, která byla vrácena Pracovní list Funkce nezmění.

Ve výše uvedeném příkladu procedura TestCount spočítala buňky ve sloupci H, kde je přítomna hodnota. Jak vidíte na řádku vzorců, tento výsledek je obrázek a ne vzorec.

Pokud se tedy některá z hodnot změní v rozsahu (H2: H12), budou výsledky v H14 NE změna.

Místo použití WorksheetFunction.Count, můžete použít VBA k použití funkce Count na buňku pomocí Vzorec nebo Vzorec R1C1 metody.

Použití metody vzorce

Metoda vzorce vám umožňuje konkrétně ukázat na řadu buněk, např .: H2: H12, jak je uvedeno níže.

123 Dílčí testovací vzorekRozsah ("H14"). Vzorec = "= Počet (H2: H12)"End Sub

Použití metody FormulaR1C1

Metoda FromulaR1C1 je flexibilnější v tom, že vás neomezuje na nastavený rozsah buněk. Následující příklad nám dá stejnou odpověď jako ten výše.

123 Dílčí testovací součet ()Rozsah ("H14"). Vzorec = "= Počet (R [-9] C: R [-1] C)"End Sub

Aby byl vzorec flexibilnější, mohli bychom kód upravit tak, aby vypadal takto:

123 Dílčí testovací součet ()ActiveCell.FormulaR1C1 = "= Počet (R [-11] C: R [-1] C)"End Sub

Ať jste kdekoli v listu, vzorec poté spočítá hodnoty ve 12 buňkách přímo nad ním a umístí odpověď do vašeho ActiveCell. Na rozsah uvnitř funkce COUNT je třeba odkazovat pomocí syntaxe Row (R) a Column (C).

Obě tyto metody vám umožňují používat ve VBA vzorce Dynamic Excel.

Nyní bude místo hodnoty vzorec v H14.

wave wave wave wave wave