VBA COUNT

Šī apmācība parādīs, kā izmantot Excel COUNT funkciju VBA

Funkcija VBA COUNT tiek izmantota, lai saskaitītu to darblapas šūnu skaitu, kurās ir vērtības. Tam var piekļūt, izmantojot WorksheetFunction metodi VBA.

COUNT darblapas funkcija

Objektu WorksheetFunction var izmantot, lai izsauktu lielāko daļu Excel funkciju, kas ir pieejamas Excel dialoglodziņā Funkcijas ievietošana. Funkcija COUNT ir viena no tām.

123 ApakštestsCountFunctinoDiapazons ("D33") = Application.WorksheetFunction.Count (Diapazons ("D1: D32"))Beigu apakš

Funkcijā COUNT var būt līdz 30 argumentiem. Katram no argumentiem ir jāattiecas uz šūnu diapazonu.

Šajā zemāk redzamajā piemērā tiks skaitīts, cik šūnu ir aizpildītas ar vērtībām šūnās D1 līdz D9

123 Sub TestCount ()Diapazons ("D10") = Application.WorksheetFunction.Count (Diapazons ("D1: D9"))Beigu apakš

Tālāk sniegtajā piemērā tiks skaitīts, cik vērtību ir diapazonā D slejā un diapazonā F slejā. Ja neievadīsiet lietojumprogrammas objektu, tas tiks pieņemts.

123 Sub TestCountMultiple ()Diapazons ("G8") = WorksheetFunction.Count (Diapazons ("G2: G7"), diapazons ("H2: H7"))Beigu apakš

Skaitīšanas rezultāta piešķiršana mainīgajam

Iespējams, vēlēsities izmantot formulas rezultātu citur kodā, nevis rakstīt to tieši atpakaļ un Excel diapazonā. Ja tas tā ir, rezultātu varat piešķirt mainīgajam, lai to izmantotu vēlāk savā kodā.

1234567 Sub AssignCount ()Dim rezultāts kā vesels skaitlis'Piešķiriet mainīgorezultāts = WorksheetFunction.Count (Diapazons ("H2: H11"))'Parādiet rezultātuMsgBox "Ar vērtībām aizpildīto šūnu skaits ir" & resultBeigu apakš

COUNT ar diapazona objektu

Objektam Range varat piešķirt šūnu grupu un pēc tam izmantot šo diapazona objektu ar DarblapaFunkcija objekts.

123456789 Sub TestCountRange ()Dim rng As Range"piešķirt šūnu diapazonuIestatīt rng = Diapazons ("G2: G7")'izmantojiet diapazonu formulāDiapazons ("G8") = WorksheetFunction.Count (rng)'atlaidiet diapazona objektuSet rng = NekasBeigu apakš

COUNT vairāku diapazonu objekti

Līdzīgi jūs varat saskaitīt, cik šūnas ir aizpildītas ar vērtībām vairākos diapazona objektos.

123456789101112 Sub TestCountMultipleRanges ()Dim rngA As RangeDim rngB kā diapazons"piešķirt šūnu diapazonuIestatīt rngA = Diapazons ("D2: D10")Iestatīt rngB = diapazons ("E2: E10")'izmantojiet diapazonu formulāDiapazons ("E11") = WorksheetFunction.Count (rngA, rngB)'atlaidiet diapazona objektuIestatīt rngA = NekasSet rngB = NekasBeigu apakš

Izmantojot COUNTA

Skaits skaitīs tikai VĒRTĪBAS šūnās; tas neskaitīs šūnu, ja šūnā ir teksts. Lai saskaitītu šūnas, kas ir aizpildītas ar jebkāda veida datiem, mums jāizmanto funkcija COUNTA.

123 Sub TestCountA ()Diapazons ("B8) = Application.WorksheetFunction.CountA (Diapazons (" B1: B6 "))Beigu apakš

Tālāk redzamajā piemērā funkcija COUNT atgrieztu nulli, jo B slejā nav vērtību, bet kolonnā C - 4. Funkcija COUNTA tomēr saskaitītu šūnas ar tekstu un atgrieztu vērtību 5 B slejā, vienlaikus atgriežot vērtību C slejā.

Izmantojot COUNTBLANKS

Funkcija COUNTBLANKS saskaitīs tikai tukšās šūnas šūnu diapazonā - ti, šūnas, kurās vispār nav datu.

123 Sub TestCountBlank ()Diapazons ("B8) = Application.WorksheetFunction.CountBlanks (Diapazons (" B1: B6 "))Beigu apakš

Tālāk redzamajā piemērā B slejā nav tukšu šūnu, bet C slejā ir viena tukša šūna.

Funkcijas COUNTIF izmantošana

Vēl viena darblapas funkcija, ko var izmantot, ir funkcija COUNTIF.

123456 Sub TestCountIf ()Diapazons ("H14") = WorksheetFunction.CountIf (Diapazons ("H2: H10"), "> 0")Diapazons ("H15") = WorksheetFunction.CountIf (Diapazons ("H2: H10"), "> 100")Diapazons ("H16") = WorksheetFunction.CountIf (Diapazons ("H2: H10"), "> 1000")Diapazons ("H17") = WorksheetFunction.CountIf (Diapazons ("H2: H10"), "> 10000")Beigu apakš

Iepriekš minētā procedūra šūnas, kurās ir vērtības, saskaitīs tikai tad, ja kritēriji ir atbilstīgi - lielāks par 0, lielāks par 100, lielāks par 1000 un lielāks par 10000. Lai formula darbotos pareizi, kritēriji ir jāievieto pēdiņās.

WorksheetFunction trūkumi

Kad izmantojat DarblapaFunkcija lai saskaitītu vērtības jūsu darblapas diapazonā, tiek atgriezta statiska vērtība, nevis elastīga formula. Tas nozīmē, ka, mainoties skaitļiem programmā Excel, vērtība, kuru ir atgriezusi DarblapaFunkcija nemainīsies.

Iepriekš minētajā piemērā procedūra TestCount ir saskaitījusi šūnas H kolonnā, kur ir vērtība. Kā redzat formulas joslā, šis rezultāts ir skaitlis, nevis formula.

Ja kāda no vērtībām mainās diapazonā (H2: H12), rezultāti H14 mainīsies mainīt.

Tā vietā, lai izmantotu DarblapaFunkcija.Skait, varat izmantot VBA, lai šūnai lietotu skaitīšanas funkciju, izmantojot Formula vai FormulaR1C1 metodes.

Izmantojot formulas metodi

Formulas metode ļauj īpaši norādīt uz šūnu diapazonu, piemēram: H2: H12, kā parādīts zemāk.

123 Sub TestCountFormulaDiapazons ("H14"). Formula = "= Count (H2: H12)"Beigu apakš

Izmantojot FormulaR1C1 metodi

FromulaR1C1 metode ir elastīgāka, jo tā neierobežo jūs ar noteiktu šūnu diapazonu. Tālāk sniegtais piemērs sniegs mums tādu pašu atbildi kā iepriekš.

123 Sub TestCountFormula ()Diapazons ("H14"). Formula = "= Count (R [-9] C: R [-1] C)"Beigu apakš

Tomēr, lai padarītu formulu elastīgāku, mēs varētu grozīt kodu šādi:

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Skaits (R [-11] C: R [-1] C)"Beigu apakš

Lai kur jūs atrastos darblapā, formula pēc tam saskaitīs vērtības 12 šūnās tieši virs tās un ievietos atbildi savā ActiveCell. Funkcijas COUNT diapazons ir jāatsaucas, izmantojot rindu (R) un kolonnu (C) sintaksi.

Abas šīs metodes ļauj VBA izmantot dinamiskās Excel formulas.

Tagad vērtības H14 vietā būs formula.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave