Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: ribakit от 10 марта 2019, 17:00

Название: Excel VBA Макросы: посчитать к-во ячеек, которые не являются пустыми в диапазоне
Отправлено: ribakit от 10 марта 2019, 17:00
Сейчас этот код обрабатывает весь столбец.  Как ограничить строкой (например 60), либо переменной?

Sub Макрос()

    Dim count As Long, c As Long
   
    ' Запись в переменную 'c' номера столбца, который надо анализировать.
    c = 1
   
    ' Подсчёт количества непустых ячеек во всём указанном столбце.
    count = Application.WorksheetFunction.CountA(Columns(c))

End Sub
Название: Re: Excel VBA Макросы: посчитать к-во ячеек, которые не являются пустыми в диапазоне
Отправлено: Администратор от 10 марта 2019, 17:17
Sub Макрос()

    Dim count As Long, c As Long
   
    ' Запись в переменную 'c' номера столбца, который надо анализировать.
    c = 1
   
    ' Подсчёт количества непустых ячеек в указанном столбце, в строках 1 - 60.
    count = Application.WorksheetFunction.CountA(Columns(c).Rows("1:60"))

End Sub
Название: Re: Excel VBA Макросы: посчитать к-во ячеек, которые не являются пустыми в диапазоне
Отправлено: ribakit от 10 марта 2019, 18:31
Администратор, спасибо за помощь - всё заработало.

Как вместо числа 60 указать переменную? Переменную нужно рассчитать по такому принципу. В заданном столбце надо найти первое попавшееся слово "ИТОГО:". В переменную записать номер строки, в которой найдено "ИТОГО:".
Название: Re: Excel VBA Макросы: посчитать к-во ячеек, которые не являются пустыми в диапазоне
Отправлено: Администратор от 10 марта 2019, 18:35
Макрос
Sub Макрос()

    Dim count As Long, c As Long, lr As Long
   
    ' Запись в переменную 'c' номера столбца, который надо анализировать.
    c = 1
   
    ' Поиск последней строки. Для этого ищется фраза 'ИТОГО:'.
    lr = WorksheetFunction.Match("ИТОГО:", Columns(c), 0)
   
    ' Подсчёт количества непустых ячеек в указанном столбце, в строках с 1 по lr.
    count = Application.WorksheetFunction.CountA(Columns(c).Rows("1:" & lr))

End Sub
[свернуть]
Название: Re: Excel VBA Макросы: посчитать к-во ячеек, которые не являются пустыми в диапазоне
Отправлено: ribakit от 10 марта 2019, 19:05
Огромное спасибо, всё заработало.