See õpetus näitab teile, kuidas VBA -s kasutada funktsiooni Excel COUNT
Funktsiooni VBA COUNT loetakse teie töölehe lahtrite arvuks, millel on väärtused. Sellele pääseb juurde VBA -s WorksheetFunction -meetodi abil.
COUNT töölehe funktsioon
Objekti WorksheetFunction abil saab helistada enamikule Exceli funktsioonidele, mis on saadaval Exceli dialoogiboksis Lisa funktsioon. Funktsioon COUNT on üks neist.
123 | AlamkontrollFunctinoVahemik ("D33") = Application.WorksheetFunction.Count (Vahemik ("D1: D32"))End Sub |
Funktsioonis COUNT saate esitada kuni 30 argumenti. Iga argument peab viitama lahtrivahemikule.
See alltoodud näide loendab, kui palju lahtreid väärtustega on lahtrites D1 kuni D9
123 | Alamkatsearv ()Vahemik ("D10") = Application.WorksheetFunction.Count (Vahemik ("D1: D9"))End Sub |
Allolevas näites loetakse, kui palju väärtusi on veeru D vahemikus ja veeru F vahemikus. Kui te ei kirjuta objekti Rakendus, eeldatakse seda.
123 | Alam TestCountMultiple ()Vahemik ("G8") = WorksheetFunction.Count (Vahemik ("G2: G7"), vahemik ("H2: H7"))End Sub |
Loendustulemuse määramine muutujale
Võib -olla soovite oma valemi tulemust kasutada mujal koodis, selle asemel, et kirjutada see otse tagasi ja Exceli vahemikku. Sellisel juhul saate tulemuse määrata muutujale, et seda oma koodis hiljem kasutada.
1234567 | Sub AssignCount ()Tuhm tulemus täisarvuna'Määrake muutujaresult = WorksheetFunction.Count (Vahemik ("H2: H11"))'Näita tulemustMsgBox "Väärtustega täidetud lahtrite arv on" & resultEnd Sub |
COUNT koos vahemiku objektiga
Objektile Range saate määrata lahtrirühma ja seejärel kasutada seda vahemiku objekti koos TöölehtFunktsioon objekti.
123456789 | Alam TestCountRange ()Dim rng As Range'määrake lahtrite vahemikMäära rng = vahemik ("G2: G7")'kasutage valemis vahemikkuVahemik ("G8") = WorksheetFunction.Count (rng)'vabastage vahemiku objektMäära rng = mitte midagiEnd Sub |
COUNT mitme vahemiku objekti
Samamoodi saate loendada, kui palju lahtreid on väärtustega mitmetes vahemiku objektides.
123456789101112 | Alam TestCountMultipleRanges ()Dim rngA As RangeDim rngB kui vahemik'määrake lahtrite vahemikMäära rngA = Vahemik ("D2: D10")Määra rngB = vahemik ("E2: E10")'kasutage valemis vahemikkuVahemik ("E11") = WorksheetFunction.Count (rngA, rngB)'vabastage vahemiku objektMäära rngA = Mitte midagiMäära rngB = mitte midagiEnd Sub |
COUNTA kasutamine
Loendus loendab ainult väärtusi lahtrites, see ei loe lahtrit, kui lahtris on tekst. Igasuguste andmetega täidetud lahtrite loendamiseks peaksime kasutama funktsiooni COUNTA.
123 | Sub TestCountA ()Vahemik ("B8) = Application.WorksheetFunction.CountA (Vahemik (" B1: B6 "))End Sub |
Allolevas näites tagastaks funktsioon COUNT nulli, kuna veerus B pole väärtusi, samas kui veerus C oleks 4. Funktsioon COUNTA loendaks aga lahtrid, milles on tekst, ja tagastaks väärtuse 5 veerus B, tagastades siiski veeru C väärtuse 4.
COUNTBLANKSi kasutamine
Funktsioon COUNTBLANKS loendab ainult lahtrite vahemikus olevaid tühje lahtreid - st lahtreid, millel pole üldse andmeid.
123 | Alam TestCountBlank ()Vahemik ("B8) = Application.WorksheetFunction.CountBlanks (Vahemik (" B1: B6 "))End Sub |
Allolevas näites pole veerus B tühje lahtreid, samas kui veerus C on üks tühi lahter.
Funktsiooni COUNTIF kasutamine
Teine töölehe funktsioon, mida saab kasutada, on funktsioon COUNTIF.
123456 | Sub TestCountIf ()Vahemik ("H14") = WorksheetFunction.CountIf (Vahemik ("H2: H10"), "> 0")Vahemik ("H15") = WorksheetFunction.CountIf (Vahemik ("H2: H10"), "> 100")Vahemik ("H16") = WorksheetFunction.CountIf (Vahemik ("H2: H10"), "> 1000")Vahemik ("H17") = WorksheetFunction.CountIf (Vahemik ("H2: H10"), "> 10000")End Sub |
Ülaltoodud protseduur loeb lahtrid, milles on väärtused, ainult siis, kui kriteeriumid on sobivad - suurem kui 0, suurem kui 100, suurem kui 1000 ja suurem kui 10000. Valemi õigeks toimimiseks peate kriteeriumid jutumärkidesse panema.
Töölehe funktsiooni puudused
Kui kasutate TöölehtFunktsioon töölehe vahemiku väärtuste loendamiseks tagastatakse staatiline väärtus, mitte paindlik valem. See tähendab, et kui teie arvud Excelis muutuvad, siis väärtus, mille on tagastanud TöölehtFunktsioon ei muutu.
Ülaltoodud näites on protseduur TestCount loendanud veeru H lahtrid, kus väärtus on olemas. Nagu näete valemiribal, on see tulemus joonis ja mitte valem.
Kui mõni väärtustest muutub seetõttu vahemikus (H2: H12), muutuvad tulemused H14 -s MITTE muutus.
Selle asemel, et kasutada TöölehtFunktsioon. Loend, saate VBA abil loendusfunktsiooni rakendada lahtrile, kasutades Valem või Valem R1C1 meetodeid.
Valemimeetodi kasutamine
Valemimeetod võimaldab teil osutada konkreetselt lahtrite vahemikule, nt: H2: H12, nagu allpool näidatud.
123 | Alam TestCountFormulaVahemik ("H14"). Valem = "= Count (H2: H12)"End Sub |
Kasutades meetodit FormulaR1C1
FromulaR1C1 meetod on paindlikum, kuna see ei piira teid teatud lahtrite vahemikuga. Allolev näide annab meile sama vastuse nagu ülaltoodud.
123 | Alam TestCountFormula ()Vahemik ("H14"). Valem = "= Count (R [-9] C: R [-1] C)"End Sub |
Kuid valemi paindlikumaks muutmiseks võiksime koodi muuta järgmiselt:
123 | Alam TestCountFormula ()ActiveCell.FormulaR1C1 = "= Arv (R [-11] C: R [-1] C)"End Sub |
Kus iganes te oma töölehel asute, loeb valem seejärel selle kohal olevate 12 lahtri väärtused ja paneb vastuse teie ActiveCelli. Funktsiooni COUNT sees olevale vahemikule tuleb viidata, kasutades rida (R) ja veeru (C) süntaksit.
Mõlemad meetodid võimaldavad teil VBA -s kasutada dünaamilisi Exceli valemeid.
H14 -s on nüüd väärtuse asemel valem.