Подсчет количества ячеек в диапазоне в зависимости от их содержимого методами Count, CountA и CountBlank объекта WorksheetFunction из кода VBA Excel.
Метод WorksheetFunction.Count
Определение
Определение метода Count объекта WorksheetFunction в VBA Excel:
Синтаксис
Синтаксис метода Count объекта WorksheetFunction:
1 |
WorksheetFunction.Count(Arg1, Arg2, ..., Arg30) |
Параметры
Параметры метода Count объекта WorksheetFunction:
Параметр | Описание |
---|---|
Arg1-Arg30 | От 1 до 30 аргументов, которые могут содержать различные типы данных или ссылаться на них. |
Примечания
- Метод WorksheetFunction.Count позволяет получить количество числовых значений в диапазоне ячеек или в массиве.
- При подсчете учитываются аргументы, которые являются числами, датами или текстовым представлением чисел.
- Логические значения учитываются при подсчете только в том случае, если они введены непосредственно в список аргументов.
Метод WorksheetFunction.CountA
Определение
Определение метода CountA объекта WorksheetFunction в VBA Excel:
Синтаксис
Синтаксис метода CountA объекта WorksheetFunction:
1 |
WorksheetFunction.CountA(Arg1, Arg2, ..., Arg30) |
Параметры
Параметры метода CountA объекта WorksheetFunction:
Параметр | Описание |
---|---|
Arg1-Arg30 | От 1 до 30 аргументов, которые могут содержать различные типы данных или ссылаться на них. |
Примечания
- Метод WorksheetFunction.CountA позволяет получить количество непустых ячеек в заданном диапазоне.
- Непустыми являются ячейки, которые содержат любые данные, включая значения ошибок и пустые строки (
""
). - Тесты показывают, что метод WorksheetFunction.CountA в массиве, созданном путем присвоения ему значений диапазона, содержащего пустые ячейки, все равно считает все элементы массива, как содержащие значения.
Метод WorksheetFunction.CountBlank
Определение
Определение метода CountBlank объекта WorksheetFunction в VBA Excel:
Синтаксис
Синтаксис метода CountBlank объекта WorksheetFunction:
1 |
WorksheetFunction.CountBlank(Arg1) |
Параметры
Параметры метода CountBlank объекта WorksheetFunction:
Параметр | Описание |
---|---|
Arg1 | Диапазон, в котором необходимо подсчитать количество пустых ячеек. |
Примечания
- Метод WorksheetFunction.CountBlank позволяет получить количество пустых ячеек в заданном диапазоне.
- Пустыми являются ячейки, которые не содержат никаких данных.
- Также подсчитываются, как пустые, ячейки с формулами, которые возвращают пустые строки (
""
). - Ячейки с нулевыми значениями в подсчете не участвуют.
Примеры
Таблица для строк кода VBA Excel со ссылками на диапазон "A1:C5"
, а также с массивом его значений в качестве аргументов:
Примеры с WorksheetFunction.Count
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Sub Primer1() Dim n As Double, a() As Variant n = WorksheetFunction.Count(Range("A1:C5")) MsgBox n 'Результат: 8 a = Range("A1:C5") n = WorksheetFunction.Count(a) MsgBox n 'Результат: 8 n = WorksheetFunction.Count("раз", "два", "три", 1, 2, 3) MsgBox n 'Результат: 3 n = WorksheetFunction.Count("раз", "два", "три", "1", "2", "3", 1, 2, 3) MsgBox n 'Результат: 6 n = WorksheetFunction.Count(Empty, Empty, 0, 0, "", "") MsgBox n 'Результат: 4 n = WorksheetFunction.Count(True, False, "True", "False") MsgBox n 'Результат: 2 End Sub |
Метод WorksheetFunction.Count можно использовать для подсчета количества числовых значений в массиве, если он создан путем присвоения ему значений диапазона. Тогда логические значения ИСТИНА и ЛОЖЬ, если они встречаются в диапазоне, в подсчете количества числовых значений не участвуют.
Примеры с WorksheetFunction.CountA
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub Primer2() Dim n As Double, a() As Variant n = WorksheetFunction.CountA(Range("A1:C5")) MsgBox n 'Результат: 13 a = Range("A1:C5") n = WorksheetFunction.CountA(a) MsgBox n 'Результат: 15 n = WorksheetFunction.CountA("раз", "два", "три", 1, 2, 3) MsgBox n 'Результат: 6 n = WorksheetFunction.CountA(Empty, Empty, 0, 0, "", "") MsgBox n 'Результат: 6 End Sub |
Примеры с WorksheetFunction.CountBlank
1 2 3 4 5 6 7 8 |
Sub Primer3() Dim n As Double, a As Range n = WorksheetFunction.CountBlank(Range("A1:C5")) MsgBox n 'Результат: 2 Set a = Range("A1:C5") n = WorksheetFunction.CountBlank(a) MsgBox n 'Результат: 2 End Sub |
Следующая статья по этой теме: VBA Excel. Методы CountIf и CountIfs.