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

Автор ribakit, 10 марта 2019, 17:00

ribakit

Сейчас этот код обрабатывает весь столбец.  Как ограничить строкой (например 60), либо переменной?

Sub Макрос()

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

End Sub

Администратор

Sub Макрос()

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

End Sub

ribakit

Администратор, спасибо за помощь - всё заработало.

Как вместо числа 60 указать переменную? Переменную нужно рассчитать по такому принципу. В заданном столбце надо найти первое попавшееся слово "ИТОГО:". В переменную записать номер строки, в которой найдено "ИТОГО:".

Администратор

Макрос
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
[свернуть]