Tento tutoriál vám ukáže, jak používat funkce Excel COUNTIF a COUNTIFS ve VBA
VBA nemá ekvivalent funkcí COUNTIF nebo COUNTIFS, které můžete použít - uživatel musí ve VBA používat vestavěné funkce Excelu pomocí Funkce pracovního listu objekt.
Funkce pracovního listu COUNTIF
Objekt WorksheetFunction lze použít k volání většiny funkcí aplikace Excel, které jsou k dispozici v dialogovém okně Vložit funkci v aplikaci Excel. Funkce COUNTIF je jednou z nich.
123 | Dílčí testovací částka ()Rozsah ("D10") = Application.WorksheetFunction.CountIf (Rozsah ("D2: D9"), "> 5")End Sub |
Výše uvedený postup započítá buňky v rozsahu (D2: D9), pouze pokud mají hodnotu 5 nebo větší. Všimněte si, že protože používáte znaménko větší než, musí být kritéria větší než 5 v závorkách.
Přiřazení výsledku COUNTIF proměnné
Možná budete chtít použít výsledek vzorce jinde v kódu, než abyste ho psali přímo zpět do a rozsahu Excelu. Pokud tomu tak je, můžete výsledek přiřadit proměnné, kterou použijete později v kódu.
1234567 | Sub AssignSumIfVariable ()Dim výsledek jako Double"Přiřaďte proměnnou."výsledek = Application.WorksheetFunction.CountIf (rozsah ("D2: D9"), "> 5")„Ukaž výsledekMsgBox "Počet buněk s hodnotou větší než 5 je" & resultEnd Sub |
Používání COUNTIFS
Funkce COUNTIFS je podobná funkci COUNTIF WorksheetFunction, ale umožňuje vám vyhledat více než jedno kritérium. V níže uvedeném příkladu vzorec spočítá počet buněk v D2 až D9, kde je prodejní cena vyšší než 6 A nákladová cena je větší než 5.
123 | Dílčí usingCountIfs ()Rozsah ("D10") = WorksheetFunction.CountIfs (Rozsah ("C2: C9"), "> 6", Rozsah ("E2: E9"), "> 5")End Sub |
Použití COUNTIF s objektem rozsahu
K objektu Range můžete přiřadit skupinu buněk a poté použít tento Range objekt s Pracovní list Funkce objekt.
123456789 | Dílčí TestCountIFRange ()Dim rngCount jako rozsah'přiřaďte rozsah buněkNastavit rngCount = rozsah ("D2: D9")'použijte rozsah ve vzorci.'Rozsah ("D10") = WorksheetFunction.SUMIF (rngCount, "> 5")'uvolněte objekty dosahuNastavit rngCount = NicEnd Sub |
Použití COUNTIFS na objektech s více rozsahy
Podobně můžete použít COUNTIFS na více objektech rozsahu.
123456789101112 | Dílčí testovací částMultipleRanges ()Dim rngCriteria1 jako rozsahDim rngCriteria2 jako rozsah'přiřaďte rozsah buněkNastavit rngCriteria1 = Rozsah ("D2: D9")Nastavit rngCriteria2 = Rozsah ("E2: E10")'použijte rozsahy ve vzorci.'Rozsah ("D10") = WorksheetFunction.CountIfs (rngCriteria1, "> 6", rngCriteria2, "> 5")'uvolněte objekty dosahuNastavit rngCriteria1 = NicNastavit rngCriteria2 = NicEnd Sub |
Vzorec COUNTIF
Když použijete WorksheetFunction.COUNTIF Chcete -li přidat součet do rozsahu v listu, je vrácena statická hodnota, nikoli flexibilní vzorec. To znamená, že když se vaše čísla v Excelu změní, hodnota, která byla vrácena Pracovní list Funkce nezmění.
Ve výše uvedeném příkladu postup spočítal množství buněk s hodnotami v rozsahu (D2: D9), kde je prodejní cena větší než 6, a výsledek byl vložen do D10. Jak vidíte na řádku vzorců, tento výsledek je obrázek a ne vzorec.
Pokud se některá z hodnot změní v rozsahu (D2: D9), výsledek v D10 se změní NE změna.
Místo použití WorksheetFunction.SumIf, můžete použít VBA k použití funkce SUMIF na buňku pomocí Vzorec nebo Vzorec R1C1 metody.
Metoda vzorce
Metoda vzorce vám umožňuje konkrétně ukázat na rozsah buněk, např.: D2: D9, jak je uvedeno níže.
123 | Dílčí testovací částka ()Rozsah ("D10"). FormulaR1C1 = "= COUNTIF (D2: D9," "> 5" ")"End Sub |
Metoda FormulaR1C1
Metoda FormulaR1C1 je flexibilnější v tom, že vás neomezuje na nastavený rozsah buněk. Následující příklad nám dá stejnou odpověď jako ten výše.
123 | Dílčí testovací částka ()Rozsah ("D10"). FormulaR1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"End Sub |
Aby byl vzorec ještě flexibilnější, mohli bychom kód upravit tak, aby vypadal takto:
123 | Dílčí testovací částka ()ActiveCell.FormulaR1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"End Sub |
Ať jste kdekoli v listu, vzorec poté spočítá buňky, které splňují kritéria přímo nad ním, a umístí odpověď do vašeho ActiveCell. Na rozsah uvnitř funkce COUNTIF je třeba odkazovat pomocí syntaxe Row (R) a Column (C).
Obě tyto metody vám umožňují používat ve VBA vzorce Dynamic Excel.
Nyní bude místo hodnoty vzorec v D10.
Text vašeho odkazu