Рецепт

Последняя заполненная строка без Select

Нужно понять, где кончаются данные в столбце, и не кликать по листу.

Не используйте Selection и ActiveCell. Возьмите нижнюю ячейку столбца и поднимитесь через End(xlUp). Если столбец пустой, получите строку 1 — проверьте это отдельно. Для таблиц смотрите ListObject.DataBodyRange.Rows.Count.

Код

Function LastRowInColumn(ws As Worksheet, col As Long) As Long
    LastRowInColumn = ws.Cells(ws.Rows.Count, col).End(xlUp).Row
End Function

Sub Demo()
    Dim lastRow As Long
    lastRow = LastRowInColumn(ThisWorkbook.Worksheets("Данные"), 1)
    If lastRow < 2 Then Exit Sub
    Debug.Print lastRow
End Sub

Связанные члены API