Похожие чаты

Про поиски последней строки по мотивам vremya-ne-zhdet.ru и excel-vba.ru Вариант 1 Основная

формула для поиска последней строки в такой таблице, не требующая соблюдения каких-либо условий:
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

2 ответов

17 просмотров

Роман, там в первом варианте нужно скорректировать код на случай когда первая строка пустая.

Roman-Rimlynin Автор вопроса
Игорь
Роман, там в первом варианте нужно скорректировать...

Наверное. Я там только два своих добавил 3б и 10. Остальное взято с указанных сайтов.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
any reference of this implementation?
BitBuddha
29
Ⓐrtto, [4/23/24 7:02 PM] Please explain more fully how it is not working exactly, and what are the steps you are taking, and what error messages come or what happens. Ⓐrtto, ...
Ezza Kezza
2
sounds like people have lost their kaspa on tradeogre... does this mean tradeogre not trustworthy?
Ezza Kezza
15
Страшнейшая правда про списки ЦБ. С первых дней жизни P2P сферы, молодые человеки, начитавшись законодательной базы и "внутренних" документов, решили, что им противостоит сер...
Foxcool
3
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
So much speculation in the last week. So much volatility in price. This is because Hedera has a GC that isn't using the network it's governing. Why aren't people asking why a...
Summit Seeker R
9
Карта сайта