Здравствуйте! Подскажите, пожалуйста, что означает следующая строка кода
Set Filt_Data = Dat1.Range("AF2", Range("A2") .End(xlDown)).Cells.SpecialCells(xlCellTypeVisible)
Я так понял, что устанавливается диапазон с именем Filt_Data, который берется с листа DAT1. Но как выбран диапазон на этом листе не понимаю. Ячейка AF2 вообще-то не видна - лист обрывается на столбце T (см. рисунок). Как сделать видимыми остальные столбцы? И что такое Cells.SpecialCells(xlCellTypeVisible) ? Это для того, чтобы выделить только видимые ячейки? Файл не мой. Прислали, надо разобраться. Автор недоступен.
Спасибо, еще вот вопрос допустим у меня на строчке 1000 заканчиваются введенные данные. Тогда Range("AF2", Range("A2") .End(xlDown)) - выберет весь диапазон A2:AF1000 ? а конструкция Cells.SpecialCells(xlCellTypeVisible) оставит только выделение по автофильтру? По логике вещей должно быть так.
Уточнение:выбор последней заполненной будет определяться по столбцу "А", т.к. Range("A2"), от А2 вниз до первой пустой ячейки если в А2 значение, если А2 пустая то до первой не пустой.
Chonard немного дал не верную инфу, пока правил сообщение #4 вы уже ответили, перечитайте поправленное сообщение #4. тест: Range("A2") .End(xlDown)) - это тоже самое становитесь в ячейку А2 и жмете ctrl+стрелка вниз.
Еще раз спасибо. По факту: на листе в ячейке А2 значение есть и далее вниз без пропусков на несколько тысяч ячеек тоже есть значения. Так что в моем случае отслеживается последняя заполненная ячейка.
Chonard написал: Так что в моем случае отслеживается последняя заполненная ячейка.
Нужно еще добавить - видимая. Если нижние строки скрыты, то xlDown их тоже не увидит. И, кстати, xlDown - не последняя ячейка в столбце, а, если в столбце есть пустые ячейки - то перед первой пустой. Или, если начинаем с пустой - то остановится на первой заполненной.