VBA -TÆLL

Denne vejledning viser dig, hvordan du bruger Excel COUNT -funktionen i VBA

Funktionen VBA COUNT bruges til at tælle antallet af celler i dit regneark, der har værdier i dem. Det tilgås ved hjælp af WorksheetFunction -metoden i VBA.

COUNT regnearkFunktion

WorksheetFunction -objektet kan bruges til at kalde de fleste Excel -funktioner, der er tilgængelige i dialogboksen Indsæt funktion i Excel. TÆLLE -funktionen er en af ​​dem.

123 Sub TestCountFunctinoRange ("D33") = Application.WorksheetFunction.Count (Range ("D1: D32"))Afslut Sub

Du kan have op til 30 argumenter i funktionen TÆLLE. Hvert af argumenterne skal referere til en række celler.

Dette eksempel nedenfor vil tælle, hvor mange celler der er befolket med værdier i cellerne D1 til D9

123 Sub TestCount ()Range ("D10") = Application.WorksheetFunction.Count (Range ("D1: D9"))Afslut Sub

Nedenstående eksempel tæller, hvor mange værdier der er i et område i kolonne D og i et område i kolonne F. Hvis du ikke skriver Application -objektet, antages det.

123 Sub TestCountMultiple ()Range ("G8") = WorksheetFunction.Count (Range ("G2: G7"), Range ("H2: H7"))Afslut Sub

Tildeling af et tælleresultat til en variabel

Du vil måske bruge resultatet af din formel andre steder i koden frem for at skrive det direkte tilbage til og Excel -område. Hvis dette er tilfældet, kan du tildele resultatet til en variabel, der skal bruges senere i din kode.

1234567 Sub AssignCount ()Dim resultat Som heltal'Tildel variablenresult = WorksheetFunction.Count (Range ("H2: H11"))'Vis resultatetMsgBox "Antallet af celler udfyldt med værdier er" & resultatAfslut Sub

TÆL med et områdeobjekt

Du kan tildele en gruppe celler til Range -objektet og derefter bruge dette Range -objekt med ArbejdsarkFunktion objekt.

123456789 Sub TestCountRange ()Dim rng Som område'tildele celleområdetIndstil rng = Range ("G2: G7")'brug området i formlenOmråde ("G8") = WorksheetFunction.Count (rng)'frigiv rækkeviddeobjektetIndstil rng = IntetAfslut Sub

TÆL flere objektområder

På samme måde kan du tælle, hvor mange celler der er fyldt med værdier i flere områdeobjekter.

123456789101112 Sub TestCountMultipleRanges ()Dim rngA As RangeDim rngB som område'tildele celleområdetIndstil rngA = Range ("D2: D10")Indstil rngB = Range ("E2: E10")'brug området i formlenOmråde ("E11") = WorksheetFunction.Count (rngA, rngB)'frigiv rækkeviddeobjektetIndstil rngA = IntetIndstil rngB = IntetAfslut Sub

Brug af COUNTA

Tællingen tæller kun VÆRDIER i celler, den tæller ikke cellen, hvis cellen har tekst i den. For at tælle de celler, der er befolket med enhver form for data, skulle vi bruge COUNTA -funktionen.

123 Sub TestCountA ()Område ("B8) = Application.WorksheetFunction.CountA (område (" B1: B6 "))Afslut Sub

I eksemplet nedenfor ville funktionen TÆLLE returnere et nul, da der ikke er nogen værdier i kolonne B, mens det ville returnere et 4 for kolonne C. TÆLLES -funktionen tæller imidlertid cellerne med tekst i og ville returnere en værdi på 5 i kolonne B, mens der stadig returneres en værdi på 4 i kolonne C.

Brug af COUNTBLANKS

COUNTBLANKS -funktionen tæller kun de tomme celler i cellens område - altså celler, der slet ikke har data i sig.

123 Sub TestCountBlank ()Område ("B8) = Application.WorksheetFunction.CountBlanks (område (" B1: B6 "))Afslut Sub

I eksemplet herunder har kolonne B ingen tomme celler, mens kolonne C har en tom celle.

Brug af COUNTIF -funktionen

En anden regnearksfunktion, der kan bruges, er funktionen TÆLLE.

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")Afslut Sub

Fremgangsmåden ovenfor tæller kun cellerne med værdier i, hvis kriterierne matcher - større end 0, større end 100, større end 1000 og større end 10000. Du skal sætte kriterierne inden for anførselstegn for at formlen fungerer korrekt.

Ulemper ved regnearksfunktion

Når du bruger ArbejdsarkFunktion for at tælle værdierne i et område i dit regneark returneres en statisk værdi, ikke en fleksibel formel. Det betyder, at når dine tal i Excel ændres, den værdi, der er returneret af ArbejdsarkFunktion vil ikke ændre sig.

I eksemplet ovenfor har proceduren TestCount talt cellerne i kolonne H op, hvor en værdi er til stede. Som du kan se i formellinjen, er dette resultat en figur og ikke en formel.

Hvis nogen af ​​værdierne ændrer sig derfor i området (H2: H12), vil resultaterne i H14 IKKE lave om.

I stedet for at bruge RegnearkFunktion.Tælling, kan du bruge VBA til at anvende en tællefunktion på en celle ved hjælp af Formel eller FormelR1C1 metoder.

Ved hjælp af formelmetoden

Formelmetoden giver dig mulighed for at pege specifikt på en række celler, f.eks .: H2: H12 som vist nedenfor.

123 Sub TestCountFormulaOmråde ("H14"). Formel = "= tælling (H2: H12)"Afslut Sub

Brug af FormulaR1C1 -metoden

FromulaR1C1 -metoden er mere fleksibel, idet den ikke begrænser dig til et bestemt antal celler. Nedenstående eksempel vil give os det samme svar som ovenstående.

123 Sub TestCountFormula ()Område ("H14"). Formel = "= Count (R [-9] C: R [-1] C)"Afslut Sub

For at gøre formlen mere fleksibel kunne vi dog ændre koden til at se sådan ud:

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Antal (R [-11] C: R [-1] C)"Afslut Sub

Uanset hvor du er i dit regneark, vil formlen derefter tælle værdierne i de 12 celler direkte over det og placere svaret i din ActiveCell. Området inde i funktionen TÆLL skal refereres til ved hjælp af rækken (R) og kolonnen (C) syntaks.

Begge disse metoder giver dig mulighed for at bruge dynamiske Excel -formler inden for VBA.

Der vil nu være en formel i H14 i stedet for en værdi.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave