Функция 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 (VBE). Нажмите на вкладку Вставка > выберите модуль.

Шаг 2: Определите новую подпроцедуру во вновь вставленном модуле, которая может содержать ваш макрос.

Код:

 Sub Example_1 () End Sub 

Шаг 3: Решите, где мы хотим сохранить выходные данные для функции COUNTA. Я хочу сохранить его в ячейке A2 листа с именем « Пример 1 ». Для этого нам нужно использовать метод Sheets.Range в VBA. Смотрите следующий скриншот для справки:

Код:

 Sub Example_1 () Sheets ("Пример 1"). Range ("A2") End Sub 

Этот фрагмент кода выбирает ячейку A2 в качестве диапазона из листа с именем Пример 1.

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

Код:

 Sub Example_1 () Sheets ("Пример 1"). Range ("A2") = WorksheetFunction End Sub 

Шаг 5: Поставьте точку (.) После указанного объекта, и вы увидите список функций, доступных для использования под ним. Выберите COUNTA из списка нескольких доступных функций, который позволяет подсчитывать непустые ячейки или значения.

Шаг 6: Укажите аргументы вручную в функции COUNTA. Аргументы: «Rajnish», «# N / A», 1, «*», True. Мы попытались привести все типы данных в качестве аргумента этой функции.

Код:

 Sub Example_1 () Sheets ("Пример 1"). Range ("A2") = WorksheetFunction.CountA ("Rajnish", "# N / A", 1, "*", True) End Sub 

Шаг 7: Запустите этот фрагмент кода, нажав F5 или кнопку Run, и просмотрите результат под ячейкой A2 листа « Пример 1 » в активной рабочей книге.

В этом коде мы хотим, чтобы система посчитала входные аргументы и сохранила счет под ячейкой A2 в примере 1.

Пример № 2 - VBA COUNTA для подсчета непустых ячеек в заданном диапазоне

Предположим, у меня есть данные по всему столбцу A, и мне нужно посчитать, что является непустыми строками во всем столбце. Поскольку весь столбец состоит из более чем 10 строк Lac, для меня является идеальным трудоемким переходом и подсчетом каждой непустой ячейки. Смотрите частичный скриншот данных ниже.

Выполните следующие шаги:

Шаг 1: Определите новую подпроцедуру, которая может содержать ваш макрос.

Код:

 Sub Example_2 () End Sub 

Шаг 2: Определите две новые переменные в этой подпроцедуре как Range, используя Dim . Одна переменная будет полезна для хранения диапазона столбца входного аргумента, а другие переменные будут полезны для хранения ячейки, в которой мы хотим получить результат в виде подсчитанного числа.

Код:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell As Sub End Sub 

Здесь rng_1 сохранит диапазон ввода для функции COUNTA. Вывод COUNTA будет сохранен в переменной op_cell .

Шаг 3: Теперь установите диапазон для обеих переменных, используя свойство VBA Set. Это должно быть сделано, потому что мы не можем напрямую присвоить значение переменной, определенной как объект диапазона.

Код:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell Как Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") End Sub 

Здесь переменная rng_1 была установлена ​​в диапазон всего столбца с именем A. op_cell установлена ​​в ячейку B1, поскольку это будет ячейка, которая содержит выходные данные COUNTA.

Шаг 4: Теперь используйте общий оператор присваивания для переменной op_cell, чтобы мы могли сохранить выходные данные в ячейке, для которой установлена ​​эта переменная. Это может рассматриваться как выходная инициализация.

Код:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell В качестве Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = End Sub 

Шаг 5: Используйте объект WorksheetFunction в правой части оператора присваивания (это будет выражение, которое будет оценено, и значение будет сохранено в ячейке с переменной op_cell), чтобы инициализировать класс, к которому мы можем обращаться, а также использовать Функция COUNTA.

Код:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell Как Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = WorksheetFunction End Sub 

Шаг 6: Как только вы нажмете точку (.) После объекта WorksheetFunction, вы сможете получить доступ ко всем функциям, доступным в этом классе. Перейдите к функции COUNTA и дважды щелкните по ней, чтобы выбрать.

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

Код:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell В качестве диапазона Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = WorksheetFunction.CountA (rng_1) End Sub 

Шаг 8: Запустите этот код, нажав F5 или кнопку Run, и вы увидите результат, как показано ниже, в ячейке B1 активного листа из рабочей книги.

В ячейке B1 мы можем видеть число как 17. Это означает, что у нас есть 17 непустых ячеек в столбце A рабочего листа. Вы можете вообще не видеть 17 на этом скриншоте, так как он является частичным. Вы могли бы лучше видеть рабочий лист и перемещаться по столбцу А.

То, что нужно запомнить

  • Вы можете использовать функцию VBA COUNTA, когда вам нужно посчитать количество непустых ячеек, присутствующих в данном диапазоне.
  • COUNTA рассматривает все значения, такие как числа, строки, значения ошибок, логические значения, пустой текст («»). Однако он не учитывает пустую ячейку.
  • Пустые ячейки не будут учитываться с помощью функции COUNTA и будут игнорироваться.
  • Вы можете использовать аргументы вручную в функции VBA COUNTA, и она все еще работает.

Рекомендуемые статьи

Это руководство к функции VBA COUNTA. Здесь мы обсудим, как использовать функцию COUNTA в Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

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

Категория: