Страницы: 1
RSS
Выбор диапазона после фильтра в VBA
 
Здравствуйте!
Подскажите, пожалуйста, что означает следующая строка кода

Set Filt_Data = Dat1.Range("AF2", Range("A2") .End(xlDown)).Cells.SpecialCells(xlCellTypeVisible)

Я так понял, что устанавливается диапазон с именем Filt_Data, который берется с листа DAT1. Но как выбран диапазон на этом листе не понимаю. Ячейка AF2 вообще-то не видна - лист обрывается на столбце T (см. рисунок).  Как сделать видимыми остальные столбцы? И что такое Cells.SpecialCells(xlCellTypeVisible) ? Это для того, чтобы выделить только видимые ячейки? Файл не мой. Прислали, надо разобраться. Автор недоступен.
Изменено: Chonard - 25.02.2015 16:29:16
 
выделяешь весь столбец Т и не отпуская левую кнопку мыши (ЛКМ) тянешь вправо (визуально ничего не изменится). ПКМ по заголовку Т - отобразить.
Цитата
Это для того, чтобы выделить только видимые ячейки?
правильнее записать в переменную Filt_Data только видимые ячейки.
Изменено: V - 25.02.2015 16:46:46
 
Спасибо, еще вот  вопрос допустим у меня на строчке 1000  заканчиваются введенные данные. Тогда Range("AF2", Range("A2") .End(xlDown)) - выберет весь диапазон A2:AF1000 ?  а конструкция Cells.SpecialCells(xlCellTypeVisible) оставит только выделение по автофильтру? По логике вещей должно быть так.
 
Уточнение:выбор последней заполненной будет определяться по столбцу "А", т.к. Range("A2"),  от А2 вниз до первой пустой ячейки если в А2 значение, если А2 пустая то до первой не пустой.
Изменено: V - 25.02.2015 17:14:03
 
Спасибо, все понял.
 
Chonard немного дал не верную инфу, пока правил сообщение #4 вы уже ответили, перечитайте поправленное сообщение #4.
тест:
Range("A2") .End(xlDown)) - это тоже самое
становитесь в ячейку А2 и жмете ctrl+стрелка вниз.
Изменено: V - 25.02.2015 17:20:57
 
Еще раз спасибо.  По факту: на листе  в ячейке А2 значение есть и далее вниз без пропусков на несколько тысяч ячеек тоже есть значения. Так что в моем случае  отслеживается последняя заполненная ячейка.
 
Цитата
Chonard написал: Так что в моем случае  отслеживается последняя заполненная ячейка.
Нужно еще добавить - видимая. Если нижние строки скрыты, то xlDown их тоже не увидит.
И, кстати, xlDown - не последняя ячейка в столбце, а, если в столбце есть пустые ячейки - то перед первой пустой. Или, если начинаем с пустой - то остановится на первой заполненной.
Страницы: 1
Наверх