Funkcja Excel VBA COUNTA
Być może często korzystałeś z funkcji COUNT i COUNTA w programie Microsoft Excel. Gdzie COUNT przechwytuje wszystkie wartości liczbowe w komórce, COUNTA przechwytuje wszystkie niepuste komórki (w tym ciągi znaków). Czy w jakikolwiek sposób można korzystać z funkcji COUNTA za pośrednictwem VBA? Zdecydowanie tak! Możesz użyć funkcji COUNTA za pośrednictwem VBA jako funkcji arkusza roboczego (ponieważ jest ona częścią rodziny WorksheetFunction w VBA) do zliczania niepustych komórek w danym zakresie arkusza roboczego. Zaletą funkcji COUNTA nad funkcją LICZNIK jest - można zliczać wszystko (liczby, ciągi znaków, znaki specjalne, wartości błędów itp.) Oprócz pustych komórek w danym zakresie, podczas gdy LICZBA może zliczać tylko liczbę komórek, które składają się na wartości liczbowe .
Składnia VBA COUNTA:
Składnia funkcji VBA COUNTA jest następująca:
Gdzie,
Arg1 - określa argument dla tej funkcji, która jest obowiązkowa i może przyjmować dowolne niepuste wartości, takie jak liczba, łańcuch, wartości błędów (jak # N / A, # DIV / 0!), Znaki specjalne itp. Pozostałe argumenty to opcjonalny.
Ta funkcja może przyjąć maksymalnie 30 argumentów w jednym wywołaniu. Argument może składać się z zakresu komórek lub pojedynczej wartości wprowadzanej ręcznie.
Jak korzystać z funkcji COUNTA w programie Excel VBA?
Poniżej znajdują się różne przykłady użycia funkcji COUNTA w programie Excel przy użyciu kodu VBA.
Możesz pobrać ten szablon Excel VBA COUNTA tutaj - Szablon Excel VBA COUNTAPrzykład # 1 - VBA COUNTA z ręcznymi argumentami jako danymi wejściowymi
Zobaczymy, jak działa funkcja COUNTA, gdy podamy jej ręczne argumenty w VBA. Wykonaj poniższe kroki:
Krok 1: Wstaw nowy moduł do Visual Basic Editor (VBE). Kliknij kartę Wstaw > wybierz Moduł.
Krok 2: Zdefiniuj nową podprocedurę w ramach nowo wstawionego modułu, która może przechowywać twoje makro.
Kod:
Sub Przykład_1 () End Sub
Krok 3: Zdecyduj, gdzie chcemy zapisać dane wyjściowe dla funkcji COUNTA. Chcę zapisać go w komórce A2 arkusza o nazwie „ Przykład 1 ”. W tym celu musimy użyć metody Sheets.Range w VBA. Dla ułatwienia zobacz następujący zrzut ekranu:
Kod:
Sub Przykład_1 () Arkusze („Przykład 1”) Zakres („A2”) Koniec Sub
Ten fragment kodu wybiera komórkę A2 jako zakres z arkusza o nazwie Przykład 1.
Krok 4: Użyj operatora przypisania, abyśmy mogli przypisać wartość do komórki, do której będzie uzyskiwany dostęp za pomocą powyższego kodu. Dodaj obiekt o nazwie WorksheetFunction, aby uzyskać dostęp do funkcji COUNTA pod nim.
Kod:
Sub Przykład_1 () Arkusze („Przykład 1”) Zakres („A2”) = Arkusz Funkcja Koniec Sub
Krok 5: Umieść kropkę (.) Po określonym obiekcie, a zobaczysz listę funkcji dostępnych do użycia pod nim. Wybierz COUNTA z listy wielu dostępnych funkcji, która pozwala policzyć niepuste komórki lub wartości.
Krok 6: Podaj argumenty ręcznie w funkcji COUNTA. Argumenty to: „Rajnish”, „# N / A”, 1, „*”, True. Próbowaliśmy przenieść wszystkie typy danych jako argument do tej funkcji.
Kod:
Sub Przykład_1 () Arkusze („Przykład 1”). Zakres („A2”) = WorksheetFunction.CountA („Rajnish”, „# N / A”, 1, „*”, True) End Sub
Krok 7: Uruchom ten fragment kodu, naciskając klawisz F5 lub Run i zobacz wynik w komórce A2 arkusza „ Przykład 1 ” w aktywnym skoroszycie.
W tym kodzie chcemy, aby system zliczał argumenty wejściowe i przechowywał liczbę w komórce A2 arkusza Przykład 1.
Przykład # 2 - VBA COUNTA do zliczania niepustych komórek w danym zakresie
Załóżmy, że mam dane w całej kolumnie A i muszę policzyć, które są niepustymi wierszami w całej kolumnie. Ponieważ cała kolumna składa się z ponad 10 rzędów Lac, jest to dla mnie idealny czasochłonne nawigowanie i liczenie każdej niepustej komórki. Zobacz częściowy zrzut ekranu danych poniżej.
Wykonaj poniższe kroki:
Krok 1: Zdefiniuj nową podprocedurę, która może przechowywać twoje makro.
Kod:
Sub Przykład_2 () End Sub
Krok 2: Zdefiniuj dwie nowe zmienne w ramach tej podprocedury jako Zakres przy użyciu Dim . Jedna zmienna będzie pomocna do przechowywania zakresu kolumny argumentów wejściowych, a inne zmienne będą pomocne w utrzymywaniu komórki tam, gdzie chcemy, aby wynik był liczbą zliczoną.
Kod:
Sub Przykład_2 () Dim rng_1 As Range Dim op_cell As Range End Sub
Tutaj rng_1 zapisze zakres wejściowy dla funkcji COUNTA. Dane wyjściowe COUNTA będą przechowywane pod zmienną op_cell .
Krok 3: Teraz ustaw zakres dla obu zmiennych za pomocą właściwości VBA Set. Należy to zrobić, ponieważ nie możemy bezpośrednio przypisać wartości do zmiennej zdefiniowanej jako obiekt zakresu.
Kod:
Sub Przykład_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range („A: A”) Set op_cell = Range („B1”) End Sub
W tym przypadku zmienna rng_1 została ustawiona na zakres całej kolumny o nazwie A. komórka op_cell jest ustawiona na komórkę B1, ponieważ byłaby to komórka zawierająca dane wyjściowe COUNTA.
Krok 4: Teraz użyj ogólnego operatora przypisania do zmiennej op_cell, abyśmy mogli przechowywać dane wyjściowe pod komórką ustawioną na tę zmienną. Można to uznać za inicjalizację wyjścia.
Kod:
Sub Przykład_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range („A: A”) Set op_cell = Range („B1”) op_cell = End Sub
Krok 5: Użyj obiektu WorksheetFunction po prawej stronie operatora przypisania (byłoby to wyrażenie, które zostanie ocenione, a wartość będzie przechowywana pod komórką ustawioną na zmienną op_cell), aby zainicjować klasę, do której możemy uzyskać dostęp, a także użyć Funkcja COUNTA.
Kod:
Sub Przykład_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range („A: A”) Set op_cell = Range („B1”) op_cell = Arkusz Funkcja End Sub
Krok 6: Natychmiast po naciśnięciu kropki (.) Za obiektem WorksheetFunction można uzyskać dostęp do wszystkich funkcji dostępnych w tej klasie. Przejdź do funkcji COUNTA i kliknij ją dwukrotnie, aby ją wybrać.
Krok 7: Użyj zmiennej rng_1 jako argumentu wejściowego w COUNTA. Dlatego ta funkcja w klasie obiektów funkcji arkusza roboczego może zliczać niepuste komórki obecne w całej kolumnie A.
Kod:
Sub Przykład_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range („A: A”) Set op_cell = Range („B1”) op_cell = WorksheetFunction.CountA (rng_1) End Sub
Krok 8: Uruchom ten kod, naciskając klawisz F5 lub Run, a zobaczysz wynik, jak pokazano poniżej w komórce B1 aktywnego arkusza ze skoroszytu.
W komórce B1 możemy zobaczyć liczbę jako 17. Co oznacza, że mamy 17 niepustych komórek obecnych w kolumnie A arkusza roboczego. Zrzut ekranu może być niewidoczny dla 17, ponieważ jest on częściowy. Lepiej możesz zobaczyć arkusz i nawigować w kolumnie A.
Rzeczy do zapamiętania
- Możesz użyć funkcji VBA COUNTA, gdy musisz policzyć liczbę niepustych komórek obecnych w danym zakresie.
- COUNTA bierze pod uwagę wszystkie wartości, takie jak liczby, ciągi znaków, wartości błędów, booleany, pusty tekst („”). Jednak nie uwzględnia pustej komórki.
- Puste komórki nie będą liczone za pomocą funkcji COUNTA i zostaną zignorowane.
- Możesz używać argumentów ręcznie w funkcji VBA COUNTA i nadal działa.
Polecane artykuły
Jest to przewodnik po funkcji VBA COUNTA. Tutaj omawiamy, jak używać funkcji COUNTA w Excel VBA wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -
- Jak utworzyć obiekt kolekcji w VBA?
- Jak liczyć znaki w programie Excel?
- FileCopy w VBA (przykłady z szablonem Excel)
- Policz komórki z tekstem w programie Excel | Szablon Excel