VBA SKAIČIUS

Ši pamoka parodys, kaip naudoti „Excel COUNT“ funkciją VBA

Funkcija VBA COUNT naudojama skaičiuoti jūsų darbalapio ląstelių, kuriose yra reikšmių, skaičių. Jis pasiekiamas naudojant „WorksheetFunction“ metodą VBA.

COUNT darbalapio funkcija

„WorksheetFunction“ objektu galima iškviesti daugumą „Excel“ funkcijų, kurios pasiekiamos „Excel“ dialogo lange Įterpti funkciją. Funkcija COUNT yra viena iš jų.

123 Sub TestCountFunctinoDiapazonas ("D33") = Application.WorksheetFunction.Count (Diapazonas ("D1: D32"))Pabaiga Sub

Funkcijoje COUNT galite turėti iki 30 argumentų. Kiekvienas argumentas turi būti susijęs su langelių diapazonu.

Šiame toliau pateiktame pavyzdyje bus skaičiuojama, kiek ląstelių yra užpildytos reikšmėmis ląstelėse D1 – D9

123 Antrasis bandymų skaičius ()Diapazonas ("D10") = Application.WorksheetFunction.Count (Diapazonas ("D1: D9"))Pabaiga Sub

Žemiau pateiktame pavyzdyje bus suskaičiuota, kiek reikšmių yra diapazone D stulpelyje ir F stulpelio diapazone.

123 Sub TestCountMultiple ()Diapazonas ("G8") = WorksheetFunction.Count (Diapazonas ("G2: G7"), diapazonas ("H2: H7"))Pabaiga Sub

Skaičiavimo rezultato priskyrimas kintamajam

Galbūt norėsite savo formulės rezultatą naudoti kitoje kodo vietoje, o ne rašyti tiesiai atgal į „Excel“ diapazoną. Tokiu atveju galite priskirti rezultatą kintamajam, kuris bus naudojamas vėliau jūsų kode.

1234567 Sub AssignCount ()Neryškus rezultatas kaip sveikasis skaičius'Priskirkite kintamąjįrezultatas = darbo lapasFunkcija.Skaičius (diapazonas ("H2: H11"))'Parodyk rezultatą„MsgBox“ Ląstelių, užpildytų reikšmėmis, skaičius yra „& result“Pabaiga Sub

COUNT su diapazono objektu

Galite priskirti langelių grupę objektui „Range“, o tada naudoti tą diapazono objektą su Darbo lapas Funkcija objektas.

123456789 Sub TestCountRange ()Dim rng As Range“priskirti ląstelių diapazonąNustatyti rng = Diapazonas („G2: G7“)'naudokite diapazoną formulėjeDiapazonas ("G8") = WorksheetFunction.Count (rng)“paleiskite diapazono objektąNustatyti rng = niekoPabaiga Sub

COUNT kelių diapazonų objektai

Panašiai galite suskaičiuoti, kiek langelių yra užpildyti reikšmėmis keliuose diapazono objektuose.

123456789101112 Sub TestCountMultipleRanges ()Dim rngA As DiapazonasDim rngB kaip diapazonas“priskirti ląstelių diapazonąNustatyti rngA = Diapazonas („D2: D10“)Nustatykite rngB = Diapazonas („E2: E10“)'naudokite diapazoną formulėjeDiapazonas („E11“) = WorksheetFunction.Count (rngA, rngB)“paleiskite diapazono objektąNustatyti rngA = NiekoNustatyti rngB = niekoPabaiga Sub

Naudojant COUNTA

Skaičiuojant bus skaičiuojamos tik ląstelėse esančios VALUES, jis neskaičiuos langelio, jei langelyje yra teksto. Norėdami suskaičiuoti ląsteles, kuriose yra bet kokio tipo duomenų, turėtume naudoti funkciją COUNTA.

123 Antrasis TestCountA ()Diapazonas ("B8) = Application.WorksheetFunction.CountA (Diapazonas (" B1: B6 "))Pabaiga Sub

Žemiau pateiktame pavyzdyje funkcija COUNT grąžintų nulį, nes B stulpelyje nėra reikšmių, o C stulpelyje - 4. Tačiau funkcija COUNTA suskaičiuotų langelius su tekstu ir grąžintų reikšmę 5 B stulpelyje, o C stulpelyje vis tiek pateikia 4 reikšmę.

Naudojant COUNTBLANKS

Funkcija COUNTBLANKS skaičiuos tik tuščias ląstelių diapazono ląsteles - ty ląsteles, kuriose nėra duomenų.

123 Sub TestCountBlank ()Diapazonas ("B8) = Application.WorksheetFunction.CountBlanks (Diapazonas (" B1: B6 "))Pabaiga Sub

Žemiau esančiame pavyzdyje B stulpelyje nėra tuščių langelių, o C stulpelyje - vienas tuščias langelis.

Funkcijos COUNTIF naudojimas

Kita darbalapio funkcija, kurią galima naudoti, yra funkcija COUNTIF.

123456 Sub TestCountIf ()Diapazonas ("H14") = WorksheetFunction.CountIf (Diapazonas ("H2: H10"), "> 0")Diapazonas ("H15") = WorksheetFunction.CountIf (Diapazonas ("H2: H10"), "> 100")Diapazonas ("H16") = WorksheetFunction.CountIf (Diapazonas ("H2: H10"), "> 1000")Diapazonas ("H17") = WorksheetFunction.CountIf (Diapazonas ("H2: H10"), "> 10000")Pabaiga Sub

Aukščiau aprašyta procedūra skaičiuos langelius, kuriuose yra reikšmių, tik jei kriterijai atitiks - didesnis nei 0, didesnis nei 100, didesnis nei 1000 ir didesnis nei 10000. Kad formulė veiktų teisingai, kriterijus turite įdėti į kabutes.

„WorksheetFunction“ trūkumai

Kai naudojate Darbo lapas Funkcija norint suskaičiuoti savo darbalapio diapazono reikšmes, grąžinama statinė vertė, o ne lanksti formulė. Tai reiškia, kad pasikeitus „Excel“ skaičiams, vertė, kurią grąžino Darbo lapas Funkcija nepasikeis.

Anksčiau pateiktame pavyzdyje procedūra „TestCount“ suskaičiavo H stulpelio langelius, kuriuose yra reikšmė. Kaip matote formulės juostoje, šis rezultatas yra figūra, o ne formulė.

Jei kuri nors iš verčių pasikeičia diapazone (H2: H12), rezultatai H14 pasikeis NE keistis.

Užuot naudoję WorksheetFunction.Count, naudodami VBA galite taikyti skaičiavimo funkciją langeliui naudodami Formulė arba Formulė R1C1 metodus.

Naudojant formulės metodą

Formulės metodas leidžia konkrečiai nurodyti langelių diapazoną, pvz .: H2: H12, kaip parodyta žemiau.

123 Sub TestCountFormulaDiapazonas ("H14"). Formulė = "= Count (H2: H12)"Pabaiga Sub

Naudojant „FormulaR1C1“ metodą

„FromulaR1C1“ metodas yra lankstesnis tuo, kad neapsiriboja tam tikru ląstelių diapazonu. Žemiau pateiktas pavyzdys suteiks mums tą patį atsakymą, kaip ir aukščiau.

123 Sub TestCountFormula ()Diapazonas ("H14"). Formulė = "= Count (R [-9] C: R [-1] C)"Pabaiga Sub

Tačiau, kad formulė būtų lankstesnė, kodą galėtume pakeisti taip:

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Skaičius (R [-11] C: R [-1] C)"Pabaiga Sub

Kad ir kur esate savo darbalapyje, formulė suskaitys reikšmes 12 langelių tiesiai virš jo ir įdės atsakymą į „ActiveCell“. Funkcijos COUNT diapazonas turi būti nurodytas naudojant eilutės (R) ir stulpelio (C) sintaksę.

Abu šie metodai leidžia naudoti dinamines „Excel“ formules VBA.

Dabar H14 vietoje formulės bus formulė.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave