VBA funkcije COUNTIF in COUNTIFS

Ta vadnica vam bo pokazala, kako uporabljati funkciji Excel COUNTIF in COUNTIFS v VBA

VBA nima enakovrednih funkcij COUNTIF ali COUNTIFS, ki jih lahko uporabite - uporabnik mora uporabiti vgrajene funkcije Excel v VBA z uporabo Funkcija delovnega lista predmet.

COUNTIF Delovni list Funkcija

Objekt WorksheetFunction lahko uporabite za klic večine Excelovih funkcij, ki so na voljo v pogovornem oknu Vstavi funkcijo v Excelu. Ena izmed njih je funkcija COUNTIF.

123 Sub TestCountIf ()Obseg ("D10") = Application.WorksheetFunction.CountIf (Razpon ("D2: D9"), "> 5")End Sub

Zgornji postopek bo štel celice v območju (D2: D9) le, če imajo vrednost 5 ali več. Upoštevajte, da morajo biti merila, večja od 5, v oklepaju, ker uporabljate znak več kot.

Dodelitev rezultata COUNTIF spremenljivki

Rezultat svoje formule boste morda želeli uporabiti drugje v kodi, namesto da bi ga zapisali neposredno nazaj in v obseg Excel. V tem primeru lahko rezultat dodelite spremenljivki, ki jo boste uporabili pozneje v kodi.

1234567 Sub AssignSumIfVariable ()Zatemni rezultat kot dvojno'Dodelite spremenljivkoresult = Application.WorksheetFunction.CountIf (Razpon ("D2: D9"), "> 5")'Pokaži rezultatMsgBox "Število celic z vrednostjo večjo od 5 je" & rezultatEnd Sub

Uporaba COUNTIFS

Funkcija COUNTIFS je podobna funkciji COUNTIF WorksheetFunction, vendar vam omogoča, da preverite več meril. V spodnjem primeru bo formula štela število celic od D2 do D9, kjer je prodajna cena večja od 6 IN nabavna cena je večja od 5.

123 Sub UsingCountIfs ()Obseg ("D10") = Delovni listFunction.CountIfs (Razpon ("C2: C9"), "> 6", Obseg ("E2: E9"), "> 5")End Sub

Uporaba COUNTIF z objektom obsega

Objektu Range lahko dodelite skupino celic, nato pa ta predmet Range uporabite z Funkcija delovnega lista predmet.

123456789 Sub TestCountIFRange ()Zatemni rngCount as Range'dodelite obseg celicNastavi rngCount = Obseg ("D2: D9")"uporabite obseg v formuliObseg ("D10") = Funkcija delovnega lista.SUMIF (rngCount, "> 5")'sprostite objekte obsegaNastavi rngCount = NičEnd Sub

Uporaba COUNTIFS na objektih z več območji

Podobno lahko uporabite COUNTIFS za več objektov obsega.

123456789101112 Sub TestCountMultipleRanges ()Dim rngCriteria1 As RangeZatemni rngCriteria2 kot obseg'dodelite obseg celicNastavi rngCriteria1 = Razpon ("D2: D9")Nastavi rngCriteria2 = Obseg ("E2: E10")"uporabite razpone v formuliObseg ("D10") = Delovni listFunction.CountIfs (rngCriteria1, "> 6", rngCriteria2, "> 5")'sprostite objekte obsegaNastavi rngCriteria1 = NičNastavi rngCriteria2 = NičEnd Sub

COUNTIF Formula

Ko uporabljate Delovni list Funkcija.COUNTIF če želite vnos na obseg na svojem delovnem listu dodati vsoto, se vrne statična vrednost in ne prilagodljiva formula. To pomeni, da ko se vaše številke v Excelu spremenijo, vrednost, ki jo je vrnil Funkcija delovnega lista se ne bo spremenilo.

V zgornjem primeru je postopek preštel količino celic z vrednostmi v razponu (D2: D9), kjer je prodajna cena večja od 6, rezultat pa je bil zapisan v D10. Kot lahko vidite v vrstici s formulami, je ta rezultat številka in ne formula.

Če se katera od vrednosti spremeni v območju (D2: D9), se rezultat v D10 spremeni NE spremeniti.

Namesto da uporabite Delovni listFunction.SumIf, lahko z VBA uporabite funkcijo SUMIF za celico s pomočjo Formula ali Formula R1C1 metode.

Metoda formule

Metoda formule vam omogoča, da posebej pokažete na vrsto celic, na primer: D2: D9, kot je prikazano spodaj.

123 Sub TestCountIf ()Razpon ("D10"). Formula R1C1 = "= COUNTIF (D2: D9," "> 5" ")"End Sub

FormulaR1C1 Metoda

Metoda FormulaR1C1 je bolj prilagodljiva, saj vas ne omejuje na določeno območje celic. Spodnji primer nam bo dal enak odgovor kot zgornji.

123 Sub TestCountIf ()Razpon ("D10"). Formula R1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"End Sub

Da pa bi bila formula še bolj prilagodljiva, bi lahko kodo spremenili takole:

123 Sub TestCountIf ()ActiveCell.FormulaR1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"End Sub

Kjer koli ste na svojem delovnem listu, bo formula nato preštela celice, ki izpolnjujejo merila neposredno nad njim, in odgovor postavila v vašo ActiveCell. Na obseg znotraj funkcije COUNTIF se je treba sklicevati s sintakso vrstice (R) in stolpca (C).

Obe metodi vam omogočata uporabo formul Dynamic Excel v VBA.

Namesto vrednosti bo zdaj v D10 formula.

Besedilo vaše povezave

wave wave wave wave wave