формула для поиска последней строки в такой таблице, не требующая соблюдения каких-либо условий:
LastStr = Cells(1, 1).CurrentRegion.Rows.Count
Вариант 2
Ниже таблицы не должно быть никаких записей, в том числе ранее удаленных:
LastStr = ActiveSheet.UsedRange.Rows.Count
Вариант 3 а
В первом столбце таблицы не должно быть пропусков, а также в таблице должно быть не менее двух заполненных строк, включая строку заголовков:
LastStr = Cells(1, 1).End(xlDown).Row
Вариант 3 б
В первом столбце таблицы не должно быть пропусков, а также в таблице должно быть не менее двух заполненных строк, включая строку заголовков:
LastStr = Cells(1, 1).End(xlUp).Row
Вариант 4
В первой колонке рабочего листа внутри таблицы не должно быть пропусков, а ниже таблицы в первой колонке не должно быть других заполненных ячеек:
LastStr = WorksheetFunction.CountA(Range("A:A"))
Вариант 5
Ниже таблицы не должно быть никаких записей:
LastStr = Cells.SpecialCells(xlLastCell).Row
Вариант 6
Получается: первая строка данных + кол-во строк с данными - 1:
LastStr = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
ActiveSheet.UsedRange.Row - этой строкой мы определяем первую ячейку, с которой начинаются данные на листе.
Важно понимать для чего это - если у вас первые строк 5 не заполнены ничем, то данная строка вернет 6(т.е. номер первой строки с данными).
Если же все строки заполнены - то вернет 1.
ActiveSheet.UsedRange.Rows.Count - определяем кол-во строк, входящих в весь диапазон данных на листе.
Зачем вычитать единицу? Попробуем посчитать вместе: первая строка: 3.
Всего строк: 3. 3 + 3 = 6.
Вроде все верно, чего тут непонятного? А теперь выделите на листе три ячейки, начиная с 3-ей.
Все верно. Ведь у нас в 3-ей строке уже есть данные.
Вариант 7
Последняя строка в диапазоне листа через Find
LastStr = Cells.Find(What:="*", _
After:=Range("A1"), _
LookAt:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
Вариант 8
LastStr = ActiveSheet.Range("A" & Application.Rows.Count).End(xlUp).Row
Вариант 9
LastStr = [Counta("Sheetname"!A:A)]
Вариант 10
Ниже таблицы не должно быть никаких записей, НЕ учитываются строки, где в том числе ранее удаленные данные были:
LastStr = Sheets("имялиста").Cells(Sheets("имялиста").Cells.SpecialCells(xlLastCell).Row, 1).End(xlUp).Row
Роман, там в первом варианте нужно скорректировать код на случай когда первая строка пустая.
Наверное. Я там только два своих добавил 3б и 10. Остальное взято с указанных сайтов.
Обсуждают сегодня