Может быть, объясненный код поможет?
LRow = ThisWorkbook.Sheets(1).Cells(ThisWorkbook.Sheets(1).Rows.Count, "A").End(xlUp).Row
Давайте разберем этот код. Во-первых, мы помещаем его в оператор With
, чтобы сэкономить время при наборе
With ThisWorkbook.Sheets(1)
LRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
Давайте разберем это на части. Во-первых, есть .Cells(.Rows.Count, "A")
Это ссылка на одну ячейку. В частности, самая последняя строка в столбце A имеет значение ThisWorkbook.Sheets(1)
. Rows.Count
дает номер последней строки в листах Excel. Последние версии Excel поддерживают 1 048 576 строк, но, например, Excel 97 поддерживает только 65536 строк.
Короче говоря, .Cells(.Rows.Count, "A")
для последних версий Excel равно (A1048576)
Тогда End(xlUp)
. Это происходит так же, как когда вы держите клавишу CTRL и нажимаете кнопку со стрелкой вверх на клавиатуре. Это приводит Excel к первой заполненной строке снизу.
Наконец, .Row
, который возвращает номер строки этой найденной ячейки.
Вы также можете начать смотреть сверху. Попробуйте удерживать клавишу CTRL, а затем нажмите кнопку со стрелкой вниз. Это остановится на последней непустой ячейке. Тем не менее, он также остановится, если у вас есть пустые ячейки между заполненными ячейками. Так что не всегда предпочтительный метод. Код будет
With ThisWorkbook.Sheets(1)
LRow = .Cells(1, "A").End(xlDown).Row
End With