Excel VBA COUNTA функция

Може би често сте използвали функциите COUNT и COUNTA в Microsoft Excel. Когато COUNT улавя всички цифрови стойности в клетка, COUNTA улавя всички непразни клетки (включително низовете). Възможно ли е по някакъв начин да използвате функцията COUNTA чрез VBA? Абсолютно да! Можете да използвате функцията COUNTA чрез VBA като функция на работен лист (тъй като тя е част от семейството WorksheetFunction във VBA), за да преброите непразните клетки през даден диапазон на работния лист. Ползата от COUNTA над COUNT функция е - тя може да брои всичко (числа, низове, специални символи, стойности на грешки и т.н.) с изключение на празни клетки в даден диапазон, докато COUNT може да отчита само броя на клетките, които се състоят от числовите стойности,

Синтаксис на VBA COUNTA:

Синтаксисът за VBA COUNTA функция е както е показано по-долу:

Където,

Arg1 - Посочва аргумента за тази функция, който е задължителен и може да приеме всяка непразна стойност като число, низ, стойности на грешки (като # N / A, # DIV / 0!), Специални символи и др. Останалите други аргументи са по избор.

Тази функция може да вземе максимум 30 аргумента в едно повикване. Аргументът може да се състои от диапазон от клетки или една стойност, която се въвежда ръчно.

Как да използвате функцията COUNTA в Excel VBA?

По-долу са дадени различните примери за използване на COUNTA функция в Excel с помощта на VBA код.

Можете да изтеглите този шаблон на VBA COUNTA Excel тук - VBA COUNTA Excel шаблон

Пример №1 - VBA COUNTA с ръчни аргументи като вход

Ще видим как работи функцията COUNTA, когато й предоставим ръчни аргументи във VBA. Следвайте посочените по-долу стъпки:

Стъпка 1: Поставете нов модул в Visual Basic Editor (VBE). Кликнете върху раздела Вмъкване > изберете Модул.

Стъпка 2: Определете нова под-процедура в нововъведения модул, която може да съдържа вашия макрос.

Код:

 Под Пример_1 () Край Sub 

Стъпка 3: Решете къде искаме да съхраним изхода за функцията COUNTA. Искам да го съхраня в клетка A2 на лист, наречена „ Пример 1 “. За да направим това, трябва да използваме метода Sheets.Range в VBA. Вижте следната екранна снимка за справка:

Код:

 Под пример_1 () Листове ("Пример 1"). Обхват ("A2") Край Sub 

Това парче код избира клетката A2 като диапазон от листа, наречен Пример 1.

Стъпка 4: Използвайте оператор за присвояване, за да можем да присвоим стойността на клетката, до която ще получите достъп чрез горния код. Добавете обекта, наречен WorksheetFunction, така че да имаме достъп до функцията COUNTA под него.

Код:

 Под пример_1 () Таблици ("Пример 1"). Обхват ("A2") = Работен листFunction End Sub 

Стъпка 5: Поставете точка (.) След посочения обект и ще видите списък с функции, достъпни за използване под него. Изберете COUNTA от списъка с множество налични функции, което ви позволява да преброите непразните клетки или стойности.

Стъпка 6: Укажете аргументите ръчно под функцията COUNTA. Аргументите са: „Rajnish“, „# N / A“, 1, „*“, True. Опитахме се да внесем всички типове данни като аргумент на тази функция.

Код:

 Под пример_1 () Таблици ("Пример 1"). Обхват ("A2") = WorksheetFunction.CountA ("Rajnish", "# N / A", 1, "*", True) Край Sub 

Стъпка 7: Стартирайте това парче код, като натиснете F5 или Run бутона и вижте изхода под клетка A2 на лист „ Пример 1 “ в активната работна книга.

В този код искаме системата да преброи входните аргументи и да запази броя под клетка A2 на Пример 1.

Пример №2 - VBA COUNTA за преброяване на непразни клетки в даден диапазон

Да предположим, че имам данни в колона A и трябва да преброя какви са непустите редове в цялата колона. Тъй като цялата колона се състои от повече от 10 реда на Lac, за мен е идеално отнемане на време да се ориентирам към и да преброя всяка непразна клетка. Вижте частичната екранна снимка на данните по-долу.

Изпълнете следните стъпки:

Стъпка 1: Определете нова под-процедура, която може да съдържа вашия макрос.

Код:

 Под Пример_2 () Край Sub 

Стъпка 2: Определете две нови променливи по тази под-процедура като диапазон, като използвате Dim . Една променлива ще бъде полезна за задържане на диапазона от колона на аргумент за въвеждане, а други променливи ще бъдат полезни при задържането на клетката, където искаме изхода като преброен номер.

Код:

 Sub Example_2 () Dim rng_1 As Dim Range op_cell Като Range End Sub 

Тук rng_1 ще съхранява обхвата на входа за функцията COUNTA. Изходът на COUNTA ще се съхранява под променлива op_cell .

Стъпка 3: Сега задайте диапазона за двете променливи, използвайки свойството VBA Set. Това трябва да се направи, защото не можем директно да присвоим стойност на променлива, дефинирана като обект от обхват.

Код:

 Под пример_2 () Dim rng_1 като диапазон Dim op_cell като диапазон набор rng_1 = обхват ("A: A") Задайте op_cell = обхват ("B1") край Sub 

Тук променливата rng_1 е зададена в обхвата на цялата колона с име A. op_cell е зададена на клетка B1, тъй като това би била клетката, която съдържа изхода на COUNTA.

Стъпка 4: Сега използвайте общ оператор за присвояване срещу променлива op_cell, за да можем да съхраним изхода под клетката, която е зададена на тази променлива. Това може да се разглежда като инициализация на изхода.

Код:

 Под пример_2 () Dim rng_1 като диапазон Dim op_cell като диапазон набор rng_1 = обхват ("A: A") Задайте op_cell = обхват ("B1") op_cell = край на под 

Стъпка 5: Използвайте обекта WorksheetFunction от дясната страна на оператора на присвояване (би било израз, който ще бъде оценен и стойността ще бъде запазена под клетка, зададена на променлива op_cell), за да инициализирате класа, в който можем да имаме достъп, както и да използваме COUNTA функция.

Код:

 Под пример_2 () Dim rng_1 като диапазон Dim op_cell като диапазон набор rng_1 = обхват („A: A“) Задайте op_cell = обхват („B1“) op_cell = работен листFunction End Sub 

Стъпка 6: Щом натиснете точка (.) След обекта WorksheetFunction, можете да получите достъп до всички функции, налични в този клас. Придвижете се към функцията COUNTA и щракнете двукратно върху нея, за да изберете.

Стъпка 7: Използвайте променлива rng_1 като входен аргумент под COUNTA. Следователно тази функция в обектния клас на функционален лист на работния лист може да преброява непразните клетки, присъстващи в цялата колона А.

Код:

 Под пример_2 () Dim rng_1 As Range Dim op_cell As Range Set rng_1 = Range ("A: A") Задайте op_cell = Обхват ("B1") op_cell = WorksheetFunction.CountA (rng_1) Край Sub 

Стъпка 8: Стартирайте този код, като натиснете бутона F5 или Run и можете да видите изхода, както е показано по-долу, в клетка B1 на активен лист от работната книга.

В клетка В1 можем да видим число като 17. Това означава, че имаме 17 непразни клетки в колона А на работния лист. Може да не виждате изобщо 17-те през този екран, тъй като е частичен. По-добре бихте могли да видите работния лист и да се движите през колона А.

Неща, които трябва да запомните

  • Можете да използвате функцията VBA COUNTA, когато трябва да преброите броя на празните клетки, присъстващи в дадения диапазон.
  • COUNTA взема предвид всички стойности като числа, низове, стойности на грешки, булеви знаци, празен текст („”). Тя обаче не счита клетката, която е празна.
  • Празните клетки не се броят с помощта на функцията COUNTA и ще бъдат игнорирани.
  • Можете да използвате аргументи ръчно във функцията VBA COUNTA и тя все още работи.

Препоръчителни статии

Това е ръководство за функцията VBA COUNTA. Тук обсъждаме как да използваме функцията COUNTA в Excel VBA, заедно с практически примери и шаблон за Excel за изтегляне. Можете да разгледате и другите ни предложени статии -

  1. Как да създадете колекционен обект в VBA?
  2. Как да броим символи в Excel?
  3. FileCopy във VBA (Примери с шаблон на Excel)
  4. Преброяване на клетки с текст в Excel | Шаблон на Excel

Категория: