Страницы: 1
RSS
Найти последнюю используемую строку на листе
 
Доброе утро знатоки. Подскажите выход из сложившейся ситуации.

Имеется код:
Код
Range("A3", Cells(Rows.Count, 7).End(xlUp)).Select

который выделяет ниже 3-1 строки после фильтра значения на 7-ми колонках.
Все бы хорошо. но если при фильтре там не оказывается ничего то код лезет выше 3 строки. чего бы не хотелось.

пример на прикрепленном фото.
Какое решение можете предложить?
 
Cells(Rows.Count, 7).End(xlUp) находит последнюю видимую строку с данными в столбце G
.UsedRange.Rows.Count определит последнюю строку используемого диапазона (с данными или без данных, но с форматированием)
 
сначала обьясняете задачу, потом, возможно, будет решение. по другому - никак
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Код
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
aybek04: Найти последнюю используемую строку на листе
несколько вариантов
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
vikttur, если UsedRange начинается с первой строки
JayBhagavan, если последняя или несколько последних строк не скрыты любым способом

aybek04, если лист пустой
т.е. worksheetfunction.counta(cells) = 0, то последней используемой строки как бы и нет (не считая строк с  заданными форматами)
если на листе есть хоть что-то, то последняя строка: (это не обязательно будет строка с данными, может быть строка с какими-то форматами)
Код
activesheet.usedrange.row -1 + activesheet.usedrange.rows.count
Изменено: Ігор Гончаренко - 20.09.2021 11:08:55
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал: если последняя или несколько последних строк не скрыты любым способом
Слушне зауваження. :)
Код
UsedRange.Rows(UsedRange.Rows.CountLarge).Row

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Код
Range([A1], ActiveSheet.UsedRange).Rows.Count
 
Простите за отсутствие в разгар вечеринки). Ребят хотелось бы, если при фильтре ниже 3 строки ничего не будет, то что бы он либо не копировал ничего или копировал пустую строку просто.
Изменено: aybek04 - 23.09.2021 09:29:59 (граммотические ошибки)
Страницы: 1
Наверх