See õpetus näitab teile, kuidas kasutada VBA Excelis COUNTIF ja COUNTIFS funktsioone
VBA -l pole samaväärset funktsiooni COUNTIF või COUNTIFS, mida saate kasutada - kasutaja peab kasutama VBA sisseehitatud Exceli funktsioone, kasutades Töölehe funktsioon objekti.
COUNTIF töölehe funktsioon
Objekti WorksheetFunction abil saab helistada enamikule Exceli funktsioonidele, mis on saadaval Exceli dialoogiboksis Lisa funktsioon. Funktsioon COUNTIF on üks neist.
123 | Sub TestCountIf ()Vahemik ("D10") = Application.WorksheetFunction.CountIf (Vahemik ("D2: D9"), "> 5")End Sub |
Ülaltoodud protseduur loeb vahemiku (D2: D9) lahtreid ainult siis, kui nende väärtus on 5 või suurem. Pange tähele, et kuna kasutate suuremat kui märki, peavad kriteeriumid, mis on suuremad kui 5, olema sulgudes.
COUNTIF tulemuse määramine muutujale
Võib -olla soovite oma valemi tulemust kasutada mujal koodis, selle asemel, et kirjutada see otse tagasi ja Exceli vahemikku. Sellisel juhul saate tulemuse määrata muutujale, et seda oma koodis hiljem kasutada.
1234567 | Sub AssignSumIfVariable ()Tulemus topelt'Määrake muutujaresult = Application.WorksheetFunction.CountIf (Vahemik ("D2: D9"), "> 5")'Näita tulemustMsgBox "Lahtrite arv, mille väärtus on suurem kui 5" ja tulemusEnd Sub |
COUNTIFS -i kasutamine
Funktsioon COUNTIFS on sarnane funktsiooniga COUNTIF WorksheetFunction, kuid see võimaldab teil kontrollida rohkem kui ühte kriteeriumi. Allolevas näites loendab valem lahtrite arvu D2 kuni D9, kus müügihind on suurem kui 6 ja omahind on suurem kui 5.
123 | AlamkasutusCountIfs ()Vahemik ("D10") = WorksheetFunction.CountIfs (Vahemik ("C2: C9"), "> 6", Vahemik ("E2: E9"), "> 5")End Sub |
COUNTIF -i kasutamine vahemiku objektiga
Objektile Range saate määrata lahtrirühma ja seejärel kasutada seda vahemiku objekti koos TöölehtFunktsioon objekti.
123456789 | AlamkatseCountIFRange ()Dim rngCount kui vahemik'määrake lahtrite vahemikMäära rngCount = Vahemik ("D2: D9")'kasutage valemis vahemikkuVahemik ("D10") = WorksheetFunction.SUMIF (rngCount, "> 5")'vabastage vahemiku objektidMäära rngCount = Mitte midagiEnd Sub |
COUNTIFS -i kasutamine mitme vahemiku objektidel
Samamoodi saate COUNTIFS -i kasutada mitmel vahemiku objektil.
123456789101112 | Alam TestCountMultipleRanges ()Dim rngCriteria1 As RangeDim rngCriteria2 kui vahemik'määrake lahtrite vahemikMäära rngCriteria1 = Vahemik ("D2: D9")Määra rngCriteria2 = Vahemik ("E2: E10")'kasutage valemis olevaid vahemikkeVahemik ("D10") = WorksheetFunction.CountIfs (rngCriteria1, "> 6", rngCriteria2, "> 5")'vabastage vahemiku objektidMäära rngCriteria1 = Mitte midagiMäära rngCriteria2 = Mitte midagiEnd Sub |
COUNTIF valem
Kui kasutate TöölehtFunktsioon.COUNTIF töölehele vahemikule summa lisamiseks tagastatakse staatiline väärtus, mitte paindlik valem. See tähendab, et kui teie arvud Excelis muutuvad, siis väärtus, mille on tagastanud TöölehtFunktsioon ei muutu.
Ülaltoodud näites on protseduur loendanud lahtrite arvu, mille väärtused on vahemikus (D2: D9), kui müügihind on suurem kui 6, ja tulemus kanti väärtuseks D10. Nagu näete valemiribal, on see tulemus joonis ja mitte valem.
Kui mõni väärtustest muutub vahemikus (D2: D9), muutub D10 tulemus MITTE muutus.
Selle asemel, et kasutada TöölehtFunktsioon.SumIf, saate VBA abil rakendada lahtrile SUMIF -funktsiooni, kasutades klahvi Valem või Valem R1C1 meetodeid.
Valemimeetod
Valemimeetod võimaldab teil osutada konkreetselt lahtrite vahemikule, nt: D2: D9, nagu allpool näidatud.
123 | Sub TestCountIf ()Vahemik ("D10"). ValemR1C1 = "= COUNTIF (D2: D9," "> 5" ")"End Sub |
ValemR1C1 meetod
FormulaR1C1 meetod on paindlikum, kuna see ei piira teid määratud lahtrivahemikuga. Allolev näide annab meile sama vastuse nagu ülaltoodud.
123 | Sub TestCountIf ()Vahemik ("D10"). ValemR1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"End Sub |
Kuid valemi veelgi paindlikumaks muutmiseks võiksime koodi muuta järgmiselt:
123 | Sub TestCountIf ()ActiveCell.FormulaR1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"End Sub |
Kus iganes teie töölehel viibite, loeb valem seejärel selle kohal olevatele kriteeriumidele vastavad lahtrid ja paneb vastuse teie ActiveCelli. Funktsiooni COUNTIF sees olevale vahemikule tuleb viidata, kasutades rida (R) ja veeru (C) süntaksit.
Mõlemad meetodid võimaldavad teil VBA -s kasutada dünaamilisi Exceli valemeid.
Nüüd on väärtuse D10 asemel valem.
Teie lingi tekst