Spis treści
Na stronie COUNTIF Funkcja w Excelu służy do zliczania liczby komórek w zakresie, które spełniają dany warunek. W tym artykule pokażemy, jak wykorzystać funkcję COUNTIF funkcja w Excelu z VBA makro.
Pobierz Workbook
Darmowy ćwiczeniowy zeszyt Excela można pobrać stąd.
Funkcja COUNTIF w VBA.xlsm
Funkcja COUNTIF w programie Excel
- Składnia
WorksheetFunction.CountIf( Arg1 As Range, Arg2 ) As Double
- Parametry
Parametr | Wymagane/ Fakultatywne | Typ danych | Opis |
---|---|---|---|
Arg1 | Wymagane | Zakres | Zakres komórek od zliczania komórek. |
Arg2 | Wymagane | Wariant | Liczba, wyrażenie, odwołanie do komórki lub tekst, który określa, które komórki mają być liczone. Na przykład wyrażenie może być 20, "20", ">20", "owoc" lub B2. |
- Typ zwrotu
Wartość jako Double
6 Przykłady użycia funkcji COUNTIF w Excelu za pomocą VBA
W tym rozdziale dowiesz się, jak używać COUNTIF funkcja w Excelu do zliczania tekstów, liczb itp. z VBA kod.
1) WorksheetFunction z COUNTIF w Excelu VBA
Excel'a WorksheetFunction można wykorzystać do wywołania większości innych funkcji w Excelu, które są dostępne w ramach funkcja wstawiania okno dialogowe w programie Excel i COUNTIF funkcja jest jedną z takich funkcji.
Na powyższym przykładzie dowiemy się, jak używać WorksheetFunction z COUNTIF do zliczania danych z VBA w Excelu.
Kroki:
- Naciśnij Alt + F11 na klawiaturze lub przejdź do zakładki Programista -> Visual Basic otworzyć Edytor Visual Basic .
- W wyskakującym oknie kodu, na pasku menu, kliknij Insert -> Moduł .
- Skopiuj poniższy kod i wklej go do okna kodu.
Sub ExCOUNTIF() Range("B13") = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Naciśnij F5 na klawiaturze lub z paska menu wybrać Run -> Run Sub/UserForm. Możesz też po prostu kliknąć na mała ikona Play na pasku podmenu, aby uruchomić makro.
Chcieliśmy się dowiedzieć ile jest liczb w naszym zbiorze danych, które są mniejsze niż 3. Tak więc po uruchomieniu kodu otrzymaliśmy wynik 4, który jest liczbą liczb, które są mniejsze niż 3 dla naszego zbioru danych.
Read More: Jak używać COUNTIF między dwoma liczbami (4 metody)?
2) Funkcja COUNTIF do liczenia określonego tekstu w Excelu
Jeśli chcesz policzyć dowolny tekst, np. ile miast, nazwisk, potraw itp. znajduje się w arkuszu Excela, to możesz wykorzystać funkcję COUNTIF działać w VBA .
Z powyższego przykładu dowiemy się, jak używać COUNTIF aby policzyć ile razy nazwa John występuje w naszym zbiorze danych z VBA makro.
Kroki:
- W taki sam sposób jak poprzednio, otwórz Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- W oknie kodu skopiuj poniższy kod i wklej go.
Sub CountifText() 'input countName = WorksheetFunction.CountIf(Range("B5:B10"), "John") 'output Range("E7") = countName End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Uruchom makro i otrzymasz całkowite zliczenie.
Jeśli nie chcesz pisać tekstu bezpośrednio w swoim kodzie, możesz go najpierw zapisać w zmiennej, a następnie przekazać zmienną wewnątrz kodu. Tak jak w poniższym kodzie,
Sub CountifText() 'input Name = Range("E6") countName = WorksheetFunction.CountIf(Range("B5:B10"), Name) 'output Range("E7") = countName End Sub
Read More: Liczenie tekstu na początku za pomocą funkcji COUNTIF & LEFT w Excelu
3. funkcja COUNTIF do obliczania liczby w VBA
Możesz wykorzystać COUNTIF funkcja do wyodrębnienia określonych wyników.
Z powyższego przykładu dowiemy się, jak używać COUNTIF aby policzyć ile jest w naszym zbiorze danych liczb, które są wyższy niż 1,1 z VBA makro.
Kroki:
- W taki sam sposób jak poprzednio, otwórz Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- W oknie kodu skopiuj poniższy kod i wklej go.
Sub CountifNumber() 'input countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">1.1") 'output Range("E7") = countNum End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Uruchom makro i otrzymasz całkowite zliczenie.
Jak już wcześniej wspomniano, jeśli nie chcesz pisać liczby bezpośrednio w swoim kodzie, możesz najpierw przechowywać ją w zmiennej, a następnie przekazać zmienną wewnątrz kodu. Tak jak w poniższym kodzie,
Sub CountifNumber() 'input Num = Range("E6") countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">" & Num) 'output Range("E7") = countNum End Sub
Read More: Excel COUNTIF z kryteriami większymi niż i mniejszymi niż.
Podobne lektury
- Excel COUNTIF Funkcja do liczenia komórek większych niż 0
- Jak używać funkcji IF i COUNTIF razem w Excelu
- Excel COUNTIF do liczenia komórki, która zawiera tekst z innej komórki
- Jak używać funkcji COUNTIF do obliczania procentów w Excelu
4) Funkcja COUNTIF z zakresem obiektów w Excelu
Możesz przypisać grupę komórek do Zakres Obiekt a następnie użyć tego Zakres Obiekt do zliczania wartości w Excelu.
Kroki:
- Otwórz Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- W oknie kodu skopiuj poniższy kod i wklej go.
Sub ExCountIFRange() Dim iRng As Range 'przypisz zakres komórek Set iRng = Range("B5:B10") 'użyj zakresu w formule Range("B13") = WorksheetFunction.SumIf(iRng, ">1") 'zwolnij obiekt zakresu Set iRng = Nothing End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Uruchom kod i otrzymasz całkowite zliczenie z wartością sumowania.
Read More: Jak używać COUNTIF dla nieciągłego zakresu w Excelu
5) Metoda formuły COUNTIF w programie Excel
Można również użyć Formuła i/lub FormułaR1C1 aby zastosować metodę COUNTIF do komórki w VBA Metody te są bardziej elastyczne w wykonywaniu takich operacji.
5.1 Metoda wzorów
Formuła Metoda pozwala określić zakres komórek jako B5:B10 pokazane poniżej w przykładzie.
Kroki:
- W oknie kodu Edytor Visual Basic , skopiuj poniższy kod i wklej go.
Option Explicit Sub ExCountIfFormula() Range("B13").Formula = "=COUNTIF(B5:B10, "">1"")" End Sub
Twój kod jest teraz gotowy do uruchomienia.
Ten fragment kodu da ci całkowitą liczbę danych, których potrzebujesz.
5.2 Metoda FormułaR1C1
WzórR1C1 Metoda jest bardziej elastyczna, ponieważ nie ogranicza się do ustalonego zakresu komórek.
Z tym samym zbiorem danych, nauczymy się teraz jak używać FormułaR1C1 aby policzyć wartości w VBA .
Kroki:
- W oknie kodu Edytor Visual Basic , skopiuj poniższy kod i wklej go.
Option Explicit Sub ExCountIfFormulaRC() Range("B13").FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2")" End Sub
Twój kod jest teraz gotowy do uruchomienia.
Ten kod da ci również całkowitą liczbę danych, których potrzebujesz.
Jeśli nie chcesz ustawiać zakresu wyjściowego to możesz uczynić ten kod jeszcze bardziej elastycznym pisząc tak,
Option Explicit Sub ExCountIfFormulaRC() ActiveCell.FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2")" End Sub
Formuła zliczy komórki spełniające warunek i umieści odpowiedź w polu ActiveCell w swoim arkuszu. Zakres wewnątrz COUNTIF Do funkcji należy się odwoływać za pomocą Wiersz (R) oraz Kolumna (C) składnia.
Read More: Jak zastosować COUNTIF pomiędzy dwoma wartościami komórek w Excelu
6) Przypisanie wyniku funkcji COUNTIF do zmiennej
Jeśli chcesz użyć wyniku swojej formuły w innym miejscu niż w zbiorze danych Excela, możesz przypisać wynik do zmiennej i użyć go później w swoim kodzie.
Na stronie VBA kod do tego to,
Sub AssignCountIfVariable() Dim iResult As Double 'Przypisz zmienną iResult = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") 'Pokaż wynik MsgBox "The count of cells with value less than 3 is " & iResult End Sub
Wynik zostanie pokazany w oknie komunikatu Excela.
Read More: COUNTIF Przykład w Excelu (22 przykłady)
Wniosek
Ten artykuł pokazał, jak używać COUNTIF funkcja w Excelu z VBA Mam nadzieję, że ten artykuł był dla Ciebie bardzo korzystny. Czuj się swobodnie, jeśli masz jakieś pytania dotyczące tematu.