CONT VBA

Acest tutorial vă va arăta cum să utilizați funcția Excel COUNT în VBA

Funcția VBA COUNT este utilizată pentru a număra numărul de celule din foaia dvs. de lucru care au valori în ele. Este accesat folosind metoda WorksheetFunction în VBA.

COUNT Foaie de lucru Funcție

Obiectul WorksheetFunction poate fi utilizat pentru a apela majoritatea funcțiilor Excel disponibile în caseta de dialog Insert Function din Excel. Funcția COUNT este una dintre ele.

123 Sub TestCountFunctinoRange ("D33") = Application.WorksheetFunction.Count (Range ("D1: D32"))Sfârșitul Sub

Puteți avea până la 30 de argumente în funcția COUNT. Fiecare dintre argumente trebuie să se refere la o gamă de celule.

Acest exemplu de mai jos va calcula câte celule sunt populate cu valori în celulele D1 până la D9

123 Sub TestCount ()Range ("D10") = Application.WorksheetFunction.Count (Range ("D1: D9"))Sfârșitul Sub

Exemplul de mai jos va număra câte valori sunt într-un interval din coloana D și într-un interval din coloana F. Dacă nu tastați obiectul Application, acesta va fi presupus.

123 Sub TestCountMultiple ()Range ("G8") = WorksheetFunction.Count (Range ("G2: G7"), Range ("H2: H7"))Sfârșitul Sub

Atribuirea unui rezultat de numărare unei variabile

Poate doriți să utilizați rezultatul formulei dvs. în altă parte în cod, mai degrabă decât să o scrieți direct înapoi și în intervalul Excel. Dacă acesta este cazul, puteți atribui rezultatul unei variabile pentru a o utiliza ulterior în cod.

1234567 Sub AssignCount ()Diminuează rezultatul ca întreg'Atribuiți variabilaresult = WorksheetFunction.Count (Range ("H2: H11"))'Arată rezultatulMsgBox "Numărul de celule populate cu valori este" & rezultatSfârșitul Sub

COUNT cu un obiect Range

Puteți atribui un grup de celule obiectului Range și apoi utilizați acel obiect Range cu Foaie de lucruFuncție obiect.

123456789 Sub TestCountRange ()Dim rng As Range'atribuiți gama de celuleSetați rng = Range ("G2: G7")'utilizați intervalul din formulăRange ("G8") = WorksheetFunction.Count (rng)'eliberați obiectul de gamăSet rng = NothingSfârșitul Sub

COUNT obiecte cu intervale multiple

În mod similar, puteți număra câte celule sunt populate cu valori în mai multe obiecte Range.

123456789101112 Sub TestCountMultipleRanges ()Dim rngA As RangeDim rngB ca Range'atribuiți gama de celuleSetați rngA = Range ("D2: D10")Setați rngB = Range ("E2: E10")'utilizați intervalul din formulăRange ("E11") = WorksheetFunction.Count (rngA, rngB)'eliberați obiectul de gamăSetați rngA = NimicSetați rngB = NimicSfârșitul Sub

Folosind COUNTA

Numărul va conta numai VALORILE din celule, nu va număra celula dacă celula are text în ea. Pentru a număra celulele care sunt populate cu orice fel de date, ar trebui să folosim funcția COUNTA.

123 Sub TestCountA ()Range ("B8) = Application.WorksheetFunction.CountA (Range (" B1: B6 "))Sfârșitul Sub

În exemplul de mai jos, funcția COUNT ar returna un zero deoarece nu există valori în coloana B, în timp ce ar returna un 4 pentru coloana C. Funcția COUNTA însă ar număra celulele cu Text în ele și ar returna o valoare de 5 în coloana B în timp ce returnează încă o valoare de 4 în coloana C.

Folosind COUNTBLANKS

Funcția COUNTBLANKS va număra doar celulele goale din gama de celule - adică celule care nu au deloc date în ele.

123 Sub TestCountBlank ()Range ("B8) = Application.WorksheetFunction.CountBlanks (Range (" B1: B6 "))Sfârșitul Sub

În exemplul de mai jos, coloana B nu are celule goale, în timp ce coloana C are o celulă goală.

Utilizarea funcției COUNTIF

O altă funcție de foaie de lucru care poate fi utilizată este funcția COUNTIF.

123456 Sub TestCountIf ()Range ("H14") = WorksheetFunction.CountIf (Range ("H2: H10"), "> 0")Range ("H15") = WorksheetFunction.CountIf (Range ("H2: H10"), "> 100")Range ("H16") = WorksheetFunction.CountIf (Range ("H2: H10"), "> 1000")Range ("H17") = WorksheetFunction.CountIf (Range ("H2: H10"), "> 10000")Sfârșitul Sub

Procedura de mai sus va număra celulele cu valori în ele numai dacă criteriile sunt potrivite - mai mare de 0, mai mare de 100, mai mare de 1000 și mai mare de 10000. Trebuie să puneți criteriile între ghilimele pentru ca formula să funcționeze corect.

Dezavantaje ale WorksheetFunction

Când utilizați Foaie de lucruFuncție pentru a număra valorile dintr-un interval din foaia dvs. de lucru, se returnează o valoare statică, nu o formulă flexibilă. Aceasta înseamnă că atunci când cifrele dvs. din Excel se schimbă, valoarea care a fost returnată de Foaie de lucruFuncție nu se va schimba.

În exemplul de mai sus, procedura TestCount a numărat celulele din coloana H unde este prezentă o valoare. După cum puteți vedea în bara de formule, acest rezultat este o cifră și nu o formulă.

Dacă oricare dintre valori se schimbă, prin urmare, în Interval (H2: H12), rezultatele în H14 vor fi NU Schimbare.

În loc să utilizați WorksheetFunction.Count, puteți utiliza VBA pentru a aplica o funcție de numărare unei celule folosind Formulă sau FormulaR1C1 metode.

Folosind metoda Formula

Metoda formulă vă permite să indicați în mod specific către o gamă de celule, de exemplu: H2: H12 așa cum se arată mai jos.

123 Sub TestCountFormulaInterval ("H14"). Formula = "= Număr (H2: H12)"Sfârșitul Sub

Folosind metoda FormulaR1C1

Metoda FromulaR1C1 este mai flexibilă în sensul că nu vă restrânge la un interval set de celule. Exemplul de mai jos ne va oferi același răspuns ca cel de mai sus.

123 Sub TestCountFormula ()Gama ("H14"). Formula = "= Număr (R [-9] C: R [-1] C)"Sfârșitul Sub

Cu toate acestea, pentru a face formula mai flexibilă, am putea modifica codul astfel:

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Număr (R [-11] C: R [-1] C)"Sfârșitul Sub

Oriunde vă aflați în foaia dvs. de lucru, formula va număra apoi valorile din cele 12 celule aflate deasupra acesteia și va plasa răspunsul în ActiveCell. Gama din interiorul funcției COUNT trebuie menționată folosind sintaxa Rând (R) și Coloană (C).

Ambele metode vă permit să utilizați formule dinamice Excel în cadrul VBA.

Acum va exista o formulă în H14 în loc de o valoare.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave