Код подсчитывает, сколько ячеек со значением находятся ниже активной ячейки. Попробуйте это, чтобы избежать ошибки, показывая ответ в MsgBox()
:
Sub RowCounter()
Dim counter As Long
counter = 1
Do Until ActiveCell = "" Or ActiveCell.Row <> Rows
counter = counter + 1
ActiveCell.Offset(1, 0).Select
Loop
MsgBox counter
End Sub
Or ActiveCell.Row <> Rows
обязательно завершит работу, если ActiveCell
находится в последнем ряду электронной таблицы Excel.
Что касается деталей .Select
и ActiveCell
, ознакомьтесь с этой темой, чтобы узнать, как ее улучшить: