VBA COUNT

Ez az oktatóanyag megmutatja, hogyan kell használni az Excel COUNT funkciót a VBA -ban

A VBA COUNT függvény a munkalap azon celláinak számolására szolgál, amelyekben vannak értékek. A VBA WorksheetFunction módszerével érhető el.

COUNT feladatlapFunkció

A WorksheetFunction objektum a legtöbb Excel -funkció meghívására használható, amelyek az Excel Funkció beszúrása párbeszédpaneljén érhetők el. A COUNT függvény az egyik.

123 TesztCountFunctinoTartomány ("D33") = Application.WorksheetFunction.Count (Tartomány ("D1: D32"))End Sub

A COUNT függvényben legfeljebb 30 érv áll rendelkezésre. Minden érvnek cellatartományra kell vonatkoznia.

Ez az alábbi példa számolja, hogy hány cellában vannak értékek a D1 -D9 cellákban

123 Rész tesztszám ()Tartomány ("D10") = Application.WorksheetFunction.Count (Tartomány ("D1: D9"))End Sub

Az alábbi példa számolja, hogy hány érték van egy tartományban a D oszlopban és egy tartományban az F oszlopban. Ha nem írja be az Application objektumot, akkor azt feltételezzük.

123 Sub TestCountMultiple ()Tartomány ("G8") = WorksheetFunction.Count (tartomány ("G2: G7"), tartomány ("H2: H7"))End Sub

Számlálási eredmény hozzárendelése egy változóhoz

Érdemes a képlet eredményét máshol használni a kódban, ahelyett, hogy közvetlenül visszaírná az Excel tartományba. Ebben az esetben az eredményt hozzárendelheti egy változóhoz, amelyet később használhat a kódban.

1234567 Sub AssignCount ()Halvány eredmény Egész számként'Rendelje hozzá a változóteredmény = WorksheetFunction.Count (tartomány ("H2: H11"))'Mutasd az eredménytMsgBox "Az értékekkel feltöltött cellák száma" & resultEnd Sub

COUNT egy tartomány objektummal

Cellacsoportot rendelhet a Range objektumhoz, majd a Range objektumot a MunkalapFunkció tárgy.

123456789 Sub TestCountRange ()Dim rng mint tartomány'rendelje hozzá a cellák tartományátRng = tartomány beállítása ("G2: G7")'használja a tartományt a képletbenTartomány ("G8") = WorksheetFunction.Count (rng)'engedje el a tartományobjektumotSet rng = SemmiEnd Sub

COUNT több tartományú objektum

Hasonlóképpen megszámolhatja, hogy hány tartományban vannak értékek több tartománytartományban.

123456789101112 Sub TestCountMultipleRanges ()Dim rngA As RangeDim rngB mint tartomány'rendelje hozzá a cellák tartományátÁllítsa be az rngA = tartományt ("D2: D10")Állítsa be az rngB = tartományt ("E2: E10")'használja a tartományt a képletbenTartomány ("E11") = WorksheetFunction.Count (rngA, rngB)'engedje el a tartományobjektumotSet rngA = SemmiSet rngB = SemmiEnd Sub

A COUNTA használata

A számlálás csak a cellákban lévő ÉRTÉKEKET számolja, nem számolja a cellát, ha a cellában szöveg van. Ahhoz, hogy megszámoljuk a sejteket, amelyek bármilyen adatot tartalmaznak, a COUNTA funkciót kell használnunk.

123 Sub TestCountA ()Tartomány ("B8) = Application.WorksheetFunction.CountA (Tartomány (" B1: B6 "))End Sub

Az alábbi példában a COUNT függvény nullát adna vissza, mivel a B oszlopban nincsenek értékek, míg a C oszlopban 4 -et adna vissza. A COUNTA függvény azonban számolja a szöveggel rendelkező cellákat, és a 5 a B oszlopban, miközben továbbra is 4 értéket ad vissza a C oszlopban.

A COUNTBLANKS használatával

A COUNTBLANKS függvény csak a cellák tartományában lévő üres cellákat számolja - azaz azokat a cellákat, amelyekben egyáltalán nincs adat.

123 Sub TestCountBlank ()Tartomány ("B8) = Application.WorksheetFunction.CountBlanks (tartomány (" B1: B6 "))End Sub

Az alábbi példában a B oszlop nem tartalmaz üres cellákat, míg a C oszlop egy üres cellát.

A COUNTIF funkció használata

Egy másik használható munkalap -funkció a COUNTIF függvény.

123456 Sub TestCountIf ()Tartomány ("H14") = WorksheetFunction.CountIf (Tartomány ("H2: H10"), "> 0")Tartomány ("H15") = WorksheetFunction.CountIf (Tartomány ("H2: H10"), "> 100")Tartomány ("H16") = WorksheetFunction.CountIf (Tartomány ("H2: H10"), "> 1000")Tartomány ("H17") = WorksheetFunction.CountIf (Tartomány ("H2: H10"), "> 10000")End Sub

A fenti eljárás csak akkor számolja a cellákat, amelyekben vannak értékek, ha a feltételek egyeznek - nagyobb, mint 0, nagyobb, mint 100, nagyobb, mint 1000 és nagyobb, mint 10000. A feltételeket idézőjelek közé kell tenni, hogy a képlet megfelelően működjön.

A WorksheetFunction hátrányai

Amikor a MunkalapFunkció a munkalap egy tartományának értékeinek számításához statikus értéket adunk vissza, nem pedig rugalmas képletet. Ez azt jelenti, hogy amikor az Excel számai megváltoznak, akkor a MunkalapFunkció nem fog változni.

A fenti példában a TestCount eljárás megszámolta a H oszlop celláit, ahol egy érték van jelen. Amint a képletsávban látható, ez az eredmény egy ábra és nem képlet.

Ha ezért valamelyik érték megváltozik a tartományban (H2: H12), akkor a H14 eredményei változnak NEM változás.

Ahelyett, hogy a WorksheetFunction.Count, a VBA segítségével számolási függvényt alkalmazhat egy cellára a Képlet vagy KépletR1C1 mód.

A képlet módszer használatával

A képletmód lehetővé teszi, hogy konkrétan mutasson egy sejttartományra, például: H2: H12, amint az alább látható.

123 TestCountFormula alTartomány ("H14"). Képlet = "= Szám (H2: H12)"End Sub

A FormulaR1C1 módszer használatával

A FromulaR1C1 módszer rugalmasabb, mivel nem korlátozza a cellák meghatározott tartományára. Az alábbi példa ugyanazt a választ adja, mint a fenti.

123 Sub TestCountFormula ()Tartomány ("H14"). Képlet = "= Szám (R [-9] C: R [-1] C)"End Sub

A képlet rugalmasabbá tétele érdekében azonban módosíthatjuk a kódot így:

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Szám (R [-11] C: R [-1] C)"End Sub

Bárhol is legyen a munkalapon, a képlet ezután számolja a közvetlenül felette lévő 12 cellában lévő értékeket, és a választ behelyezi az ActiveCell -be. A COUNT függvényen belüli tartományra a Sor (R) és az Oszlop (C) szintaxis segítségével kell hivatkozni.

Mindkét módszer lehetővé teszi a dinamikus Excel képletek használatát a VBA -n belül.

Most a H14 képlet lesz az érték helyett.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave