Vba excel посчитать количество непустых ячеек в столбце

Обновлено: 05.07.2024


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

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

Синтаксис функции VBA COUNTA показан ниже:


Эта функция может принимать до 30 аргументов за один вызов. Аргумент может состоять из диапазона ячеек или одного значения, которое вводится вручную.

Как использовать функцию COUNTA в Excel VBA?

Ниже приведены различные примеры использования функции COUNTA в Excel с использованием кода VBA.

Вы можете скачать этот шаблон VBA COUNTA Excel здесь - Шаблон VBA COUNTA Excel

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

Мы увидим, как работает функция COUNTA, когда мы предоставим ей ручные аргументы в VBA. Выполните следующие шаги:

Шаг 1. Вставьте новый модуль в редактор Visual Basic (VBE). Нажмите на вкладку Вставка > выберите модуль.


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

Код:


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

Код:


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

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

Код:


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


Код:


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

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

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

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


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

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

Код:


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

Код:


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

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

Код:


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

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

Код:


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

Код:


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


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

Код:


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

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

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

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

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

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


В Excel мы используем функцию count для подсчета количества ячеек, которые содержат числа. То же самое можно сделать и в VBA. В VBA мы можем использовать ту же функцию Count, чтобы узнать, сколько номеров ячеек содержат числа. Считает только ячейку с числами. Значения, отличные от чисел, не могут быть подсчитаны.

Синтаксис Count в Excel VBA

Синтаксис для функции VBA Count в Excel выглядит следующим образом:


Как использовать VBA Count в Excel?

Мы узнаем, как использовать функцию подсчета VBA, с несколькими примерами в Excel.

Вы можете скачать этот шаблон VBA Count Excel здесь - Шаблон VBA Count Excel

Пример № 1 - количество VBA

Для реализации этого у нас есть список некоторых данных в столбце А. Этот список содержит цифры и тексты, как показано ниже. Теперь мы с помощью функции Count в VBA увидим, сколько ячеек имеют числа. Для этого мы определили ячейку в позиции A8, где мы увидим вывод функции Count через VBA.


Шаг 1: Для этого нам нужен модуль. Перейдите на вкладку меню «Вставка» и выберите «Модуль», как показано ниже из списка.


Шаг 2: После этого мы получим пустое окно модуля. Теперь в это напишите подкатегорию VBA Count. Или выберите любое другое имя согласно вашему выбору.

Код:


Шаг 3: Выберите диапазон ячейки, в которой мы хотим применить функцию Count. Здесь нашей выходной ячейкой является A8, как определено выше. Таким образом, мы выбрали его в качестве нашего диапазона .

Код:


Шаг 4: Теперь получите команду Value, и это позволит нам добавить значение в нее.

Код:


Шаг 5: Теперь с помощью функции подсчета выберите диапазон ячеек, из которого мы хотим получить количество ячеек, которое содержит только числа. Здесь мы выбрали диапазон ячеек от А1 до А6.

Код:


Ste 6: После этого скомпилируйте код и запустите, нажав кнопку воспроизведения. Как мы видим ниже, количество ячеек, содержащих числа, равно 3. Что означает, что функция Count в VBA дала счетчик ячеек с номерами от A1 до A3.

Пример № 2 - Количество VBA

Аналогичным образом, у нас есть другой набор данных. Но эти данные имеют некоторые даты, число с текстом вместе с цифрами и текст, как показано ниже. Мы исправили ячейку C12, где мы увидим вывод функции Count через VBA.


Теперь мы применим функцию Count и посмотрим, может ли она считать даты и числовые текстовые ячейки или нет. Мы можем снова написать новый код или ссылаться на тот же код, который мы видели в примере 1, и просто изменить ячейки ссылки.

Шаг 1: Перейдите на вкладку меню «Вставка» и выберите пункт «Модуль», как показано ниже в списке.

Код:


Шаг 2: Выберите диапазон ячеек, в котором мы хотим увидеть вывод. Вот эта ячейка C12.

Код:


Шаг 3: Теперь используйте функцию подсчета в кавычках для выбора диапазона тех ячеек, которые нам нужно посчитать. Здесь этот диапазон от ячейки C1 до C10.

Код:


Шаг 4: Теперь запустите приведенный выше код.

Мы увидим, что функция Count вернула счетчик 6, как показано ниже. Это означает, что функция count может также считать ячейки с датой. Здесь значения, выделенные жирным шрифтом, являются значениями, которые только что были подсчитаны с помощью функции Count в VBA.

Пример № 3 - Количество VBA

Есть еще один способ использовать функцию подсчета в VBA. Этот метод предполагает использование активных ячеек листа. Здесь мы будем использовать те же данные, которые мы видели в примере-1.


Шаг 1: Откройте новый модуль и создайте подкатегорию с именем VBA Count, как показано ниже.

Код:


Шаг 2. Сначала вставьте функцию ActiveCell в VBA. Это поможет в выборе диапазона ячеек.

Код:


Шаг 3: Теперь с помощью функции Formula выберите номер строки и номер столбца, которые мы хотим вставить в функцию Count. Здесь наша ссылочная строка начинается с 1, а столбец также равен 1.

Код:


Шаг 4: Теперь вставьте функцию Count под кавычками, как показано ниже.

Код:


Шаг 5: Выберите диапазон ячеек от точки, где мы применяем функцию Count. По мере того, как мы поднимаемся от A8 к A1, количество строк будет равно « -7 », а столбец будет первым, но ничто не будет упомянуто в числе строк «-2» от начальной точки, которая является ячейкой A8 .

Код:


Шаг 6: Теперь выберите диапазон ячеек, в котором мы хотим увидеть результат. Здесь, в этой ячейке диапазона A8, мы также увидим курсор.

Код:


Шаг 7: Теперь запустите код. Мы увидим, что функция count вернула то же число, что и 3, которое мы получили в примере-1.

Плюсы VBA Count

  1. Это так же просто, как применять функцию подсчета в Excel.
  2. Это одна из самых простых функций, которые можно автоматизировать с помощью VBA.
  3. Если процесс Count повторяется несколько раз, то его автоматизация с помощью функции Count в VBA - это экономия времени и усилий.

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

  • При применении функции подсчета в VBA всегда указывайте имя функции в кавычках.
  • Поскольку мы используем Count в Excel, то же самое можно увидеть и при применении Count Function в VBA.
  • Процесс применения VBA Count также может быть выполнен путем перекодирования макроса.
  • Всегда сохраняйте написанный код в VBA в Macro, включите формат файла Excel, чтобы избежать потери кода.

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

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

На практике часто возникает необходимость быстро найти значение последней (крайней) непустой ячейки в строке или столбце таблицы. Предположим, для примера, что у нас есть вот такая таблица с данными продаж по нескольким филиалам:

Поиск последней непустой ячейки в строке или столбце Excel

Задача: найти значение продаж в последнем месяце по каждому филиалу, т.е. для Москвы это будет 78, для Питера - 41 и т.д.

Если бы в нашей таблице не было пустых ячеек, то путь к решению был бы очевиден - можно было бы посчитать количество заполненных ячеек в каждой строке и брать потом ячейку с этим номером. Но филиалы работают неравномерно: Москва простаивала в марте и августе, филиал в Тюмени открылся только с апреля и т.д., поэтому такой способ не подойдет.

Универсальным решением будет использование функции ПРОСМОТР (LOOKUP) :

Поиск последней непустой ячейки функцией ПРОСМОТР

У этой функции хитрая логика:

  • Она по очереди (слева-направо) перебирает непустые ячейки в диапазоне (B2:M2) и сравнивает каждую из них с искомым значением (9999999).
  • Если значение очередной проверяемой ячейки совпало с искомым, то функция останавливает просмотр и выводит содержимое ячейки.
  • Если точного совпадения нет и очередное значение меньше искомого, то функция переходит к следующей ячейке в строке.

Легко сообразить, что если в качестве искомого значения задать достаточно большое число, то функция пройдет по всей строке и, в итоге, выдаст содержимое последней проверенной ячейки. Для компактности, можно указать искомое число в экспоненциальном формате, например 1E+11 (1*10 11 или сто миллиардов).

Если в таблице не числа, а текст, то идея остается той же, но "очень большое число" нужно заменить на "очень большой текст":

Поиск последнего текстового значения в строке

Применительно к тексту, понятие "большой" означает код символа. В любом шрифте символы идут в следующем порядке возрастания кодов:

  1. латиница прописные (A-Z)
  2. латиница строчные (a-z)
  3. кириллица прописные (А-Я)
  4. кириллица строчные (а-я)

Поэтому строчная "я" оказывается буквой с наибольшим кодом и слово из нескольких подряд "яяяяя" будет, условно, "очень большим словом" - заведомо "большим", чем любое текстовое значение из нашей таблицы.

Вот так. Не совсем очевидное, но красивое и компактное решение. Для поиска последней непустой ячейки в столбцах работает тоже "на ура".

Когда есть несколько ячеек без данных, заполненных в диапазоне в Excel, и вы просто хотите знать, сколько непустых ячеек или пустых ячеек находится в этом диапазоне, как вы можете это сделать? Теперь я могу представить вам два способа подсчета пустых или непустых ячеек в диапазоне в Excel.

Подсчет пустых или непустых ячеек с помощью формулы

В Excel есть формулы, которые помогут быстро подсчитать только пустые или непустые ячейки в диапазоне.

Например, вам нужно подсчитать пустые ячейки только в этом диапазоне, как показано ниже, и выбрать пустую ячейку, чтобы ввести эту формулу. = СЧЁТЕСЛИ (A1: G11; "") (диапазон A1: G11 указывает диапазон, из которого вы хотите подсчитать пустые ячейки, вы можете изменить его по своему усмотрению) и нажмите кнопку Enter на клавиатуре, вы посчитаете пустые ячейки. Смотрите скриншот:


Совет: вы можете использовать эту формулу: = СЧИТАТЬПУСТОТЫ (A1: G11) для подсчета только пустых ячеек. Если вы хотите подсчитывать только непустые ячейки, вы можете использовать эту формулу = СЧЁТ (A1: G11) (диапазон A1: G11 указывает диапазон, из которого вы хотите подсчитать непустые ячейки, вы можете изменить его по своему усмотрению), или вы также можете использовать эту формулу = СЧЁТЕСЛИ (A1: G11; «<>») .

Легко подсчитайте и выберите все непустые ячейки в диапазоне в Excel:

Kutools for Excel's Выбрать непустые ячейки Утилита поможет вам легко подсчитать и выбрать все непустые ячейки в выбранном диапазоне в Excel, как показано на скриншоте ниже.
Скачайте и попробуйте прямо сейчас! (60-дневная бесплатная трасса)


Подсчет пустых или непустых ячеек с помощью VBA

Выполните следующие шаги, чтобы использовать код VBA для преобразования подсчета только пустых или непустых ячеек.

1. Держать ALT и нажмите F11 на клавиатуре, чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модуль, и скопируйте VBA в модуль.

VBA: подсчитывать только пустые ячейки

3. Нажмите Запустите для запуска VBA и KutoolsforExcel появится диалоговое окно для выбора рабочего диапазона, см. снимок экрана:


4. Затем нажмите OK в диалоговом окне, и отображается другое диалоговое окно, чтобы сообщить вам, сколько пустых ячеек находится в этом выбранном диапазоне.


Совет: если вы хотите подсчитать непустые ячейки, вы можете сделать, как указано выше, и использовать следующий VBA:

VBA: подсчитывать только непустые ячейки

Легко подсчитывать непустые ячейки с помощью Kutools for Excel

Освободи Себя Выбрать непустые ячейки полезности Kutools for Excel помогает выбрать все непустые ячейки в выбранном диапазоне одним щелчком мыши, а затем легко подсчитать количество выбранных ячеек.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. Выберите диапазон с непустыми ячейками, которые вы хотите подсчитать, затем щелкните Kutools > Выберите > Выберите непустые ячейки. Смотрите скриншот:


2. Затем появится диалоговое окно, чтобы сообщить вам, сколько непустых ячеек в выбранном диапазоне, нажмите кнопку ОК, и эти непустые ячейки будут выбраны немедленно. Смотрите скриншот:

doc nonblank1

Если вы хотите получить 30-дневную бесплатную пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

Читайте также: