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 COUNTA

Przykł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 -

  1. Jak utworzyć obiekt kolekcji w VBA?
  2. Jak liczyć znaki w programie Excel?
  3. FileCopy w VBA (przykłady z szablonem Excel)
  4. Policz komórki z tekstem w programie Excel | Szablon Excel

Kategoria: