Ovaj vodič će vam pokazati kako koristiti funkciju Excel COUNT u VBA
Funkcija VBA COUNT koristi se za brojanje broja ćelija na vašem radnom listu koje imaju vrijednosti. Pristupa se metodom WorksheetFunction u VBA.
COUNT Funkcija radnog lista
Objekt WorksheetFunction može se koristiti za pozivanje većine Excel funkcija koje su dostupne u dijaloškom okviru Umetni funkciju u Excelu. Funkcija COUNT jedna je od njih.
123 | Pod TestCountFunctinoRaspon ("D33") = Application.WorksheetFunction.Count (Raspon ("D1: D32"))Kraj podm |
Možete imati do 30 argumenata u funkciji COUNT. Svaki od argumenata mora se odnositi na raspon ćelija.
Ovaj donji primjer će brojati koliko je stanica popunjeno vrijednostima u ćelijama D1 do D9
123 | Broj podtesta ()Raspon ("D10") = Application.WorksheetFunction.Count (Raspon ("D1: D9"))Kraj podm |
Primjer u nastavku će brojati koliko je vrijednosti u rasponu u stupcu D i u rasponu u stupcu F. Ako ne upišete objekt Application, to će se pretpostaviti.
123 | Pod TestCountMultiple ()Raspon ("G8") = Funkcija radnog lista.Broj (raspon ("G2: G7"), Raspon ("H2: H7"))Kraj podm |
Dodjeljivanje rezultata Count varijabli
Možda ćete htjeti koristiti rezultat svoje formule na drugom mjestu u kodu, a ne pisati ga izravno u Excel raspon. U tom slučaju rezultat možete dodijeliti varijabli koja će se kasnije koristiti u vašem kodu.
1234567 | Sub AssignCount ()Zatamni rezultat kao cijeli broj'Dodijelite varijabluresult = WorksheetFunction.Count (Raspon ("H2: H11"))'Pokaži rezultatMsgBox "Broj ćelija popunjenih vrijednostima je" & rezultatKraj podm |
COUNT s objektom raspona
Objektu Range možete dodijeliti skupinu ćelija, a zatim koristiti taj objekt Range s Funkcija radnog lista objekt.
123456789 | Pod TestCountRange ()Dim rng As Range'dodijeliti raspon ćelijaPostavite rng = raspon ("G2: G7")'upotrijebite raspon u formuliRaspon ("G8") = Funkcija radnog lista.Broj (rng)'otpustite objekt rasponaPostavite rng = NištaKraj podm |
COUNT Objekti višestrukog raspona
Slično, možete brojati koliko je ćelija popunjeno vrijednostima u više objekata raspona.
123456789101112 | Pod TestCountMultipleRanges ()Dim rngA As RangeDim rngB kao raspon'dodijeliti raspon ćelijaPostavite rngA = Raspon ("D2: D10")Postavite rngB = Raspon ("E2: E10")'upotrijebite raspon u formuliRaspon ("E11") = Funkcija radnog lista.Broj (rngA, rngB)'otpustite objekt rasponaPostavite rngA = NištaPostavite rngB = NištaKraj podm |
Korištenje COUNTA
Brojanje će brojati samo VRIJEDNOSTI u ćelijama, neće brojati ćeliju ako ćelija ima tekst u sebi. Za prebrojavanje ćelija koje su popunjene bilo kojom vrstom podataka, morali bismo upotrijebiti funkciju COUNTA.
123 | Pod TestCountA ()Raspon ("B8) = Application.WorksheetFunction.CountA (Raspon (" B1: B6 "))Kraj podm |
U donjem primjeru funkcija COUNT bi vratila nulu jer nema vrijednosti u stupcu B, dok bi vratila 4 za stupac C. Međutim, funkcija COUNTA brojala bi ćelije s tekstom i vratila bi vrijednost 5 u stupcu B, a još uvijek vraća vrijednost 4 u stupcu C.
Korištenje COUNTBLANKS
Funkcija COUNTBLANKS će brojati samo prazne ćelije u rasponu ćelija - tj. Ćelije u kojima uopće nema podataka.
123 | Pod TestCountBlank ()Raspon ("B8) = Application.WorksheetFunction.CountBlanks (Raspon (" B1: B6 "))Kraj podm |
U donjem primjeru stupac B nema praznih ćelija dok stupac C ima jednu praznu ćeliju.
Korištenje funkcije COUNTIF
Druga funkcija radnog lista koja se može koristiti je funkcija COUNTIF.
123456 | Sub TestCountIf ()Raspon ("H14") = Funkcija radnog lista.CountIf (Raspon ("H2: H10"), "> 0")Raspon ("H15") = Funkcija radnog lista.CountIf (Raspon ("H2: H10"), "> 100")Raspon ("H16") = Funkcija radnog lista.CountIf (Raspon ("H2: H10"), "> 1000")Raspon ("H17") = Funkcija radnog lista.CountIf (Raspon ("H2: H10"), "> 10000")Kraj podm |
Gornji postupak će brojati ćelije s vrijednostima u njima samo ako se kriteriji podudaraju - veći od 0, veći od 100, veći od 1000 i veći od 10000. Morate staviti kriterije u navodnike kako bi formula ispravno radila.
Nedostaci rada radnog lista
Kada koristite Funkcija radnog lista za brojanje vrijednosti u rasponu na vašem radnom listu vraća se statička vrijednost, a ne fleksibilna formula. To znači da kada se vaše brojke u Excelu promijene, vrijednost koju je vratio Funkcija radnog lista neće se promijeniti.
U gornjem primjeru, postupak TestCount je izbrojio ćelije u stupcu H gdje je prisutna vrijednost. Kao što možete vidjeti na traci s formulama, ovaj rezultat je brojka, a ne formula.
Ako se neka od vrijednosti promijeni u rasponu (H2: H12), rezultati u H14 hoće NE promijeniti.
Umjesto da koristite Radni list Funkcija.Broj, možete koristiti VBA za primjenu funkcije brojanja na ćeliju pomoću Formula ili Formula R1C1 metodama.
Korištenjem metode formule
Metoda formule omogućuje vam da posebno pokažete na niz ćelija, na primjer: H2: H12 kao što je prikazano u nastavku.
123 | Pod TestCountFormulaRaspon ("H14"). Formula = "= Broj (H2: H12)"Kraj podm |
Korištenjem metode FormulaR1C1
Metoda FromulaR1C1 fleksibilnija je po tome što vas ne ograničava na zadani raspon ćelija. Primjer u nastavku dat će nam isti odgovor kao i prethodni.
123 | Pod TestCountFormula ()Raspon ("H14"). Formula = "= Broj (R [-9] C: R [-1] C)"Kraj podm |
Međutim, kako bismo formulu učinili fleksibilnijom, kôd bismo mogli promijeniti tako da izgleda ovako:
123 | Pod TestCountFormula ()ActiveCell.FormulaR1C1 = "= Broj (R [-11] C: R [-1] C)"Kraj podm |
Gdje god se nalazili na svom radnom listu, formula će tada prebrojiti vrijednosti u 12 ćelija izravno iznad njega i smjestiti odgovor u vašu ActiveCell. Raspon unutar funkcije COUNT mora se pozvati pomoću sintakse Redak (R) i Stupac (C).
Obje ove metode omogućuju vam korištenje Dynamic Excel formula unutar VBA.
U H14 sada će postojati formula umjesto vrijednosti.