Возможно, вы захотите рассмотреть приведенную ниже функцию. Используемый выше метод не будет работать, если последняя строка набора данных скрыта или (возможно) применяется фильтр). В приведенной ниже функции представлен более надежный способ достижения такого же результата.
Надеется, что это помогает
Function LastRowColumn(sht As Worksheet, RowColumn As String) As Long
'PURPOSE: Function To Return the Last Row Or Column Number In the Active Spreadsheet
'INPUT: "R" or "C" to determine which direction to search
Dim rc As Long
Select Case LCase(Left(RowColumn, 1)) 'If they put in 'row' or column instead of 'r' or 'c'.
Case "c"
LastRowColumn = sht.Cells.Find("*", LookIn:=xlFormulas, SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
Case "r"
LastRowColumn = sht.Cells.Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Case Else
LastRowColumn = 1
End Select
End Function
Я не ставил, как макрос. Я положил это внутри объектов внутри листа объектов – Prabhu