Страницы: 1
RSS
VBA: Выделение отфильтрованного диапазона
 
Уважаемые гуру excel, прошу подсказать, как в VBA  выделить отфильтрованный диапазон, скопировать, и вставить в другую книгу.
Важно чтобы способ работал и для страниц где фильтрация не привела к изменению диапазона. то есть все ячейки удовлетворили условию фильтра.
Способ Range("H2:H"&rows.count).specialcells(xlcelltypevisible).copy не работает для тех случае когда все ячейки на странице удовлетворяют условию фильтра. Получается что он копирует весь столбец данных.  
 
Для начала поэкспериментируйте с такой "базовой" конструкцией:
Код
  ActiveSheet.AutoFilter.Range.Copy
Владимир
 
Владимир, уже пробовал. В итоге решил следующим кодом:
Код
range("H2").select
With range(Activecell.end(xlUp), activecell.end(xldown))
       .select
       .copy
end with

Но хотелось бы знать более короткий способ. И да мне нужны не все данные, а то столбец H. вернее все отфильтрованные коды товаров. скрин прикреплен.
Спасибо.  
 
А так?
Код
Range(Cells(2, 8), Cells(Rows.Count, 8).End(xlUp)).Copy

См. также статью Дмитрия Щербакова.
Изменено: sokol92 - 15.07.2018 19:12:51
Владимир
 
2010
Код
 ActiveSheet.AutoFilter.Range.Offset(1, 7).Resize(, 1).Copy [k15]

2007
Код
ActiveSheet.AutoFilter.Range.Offset(1, 7).Resize(, 1).SpecialCells(xlCellTypeVisible).Copy [k15]
 
Цитата
RAN написал:ActiveSheet.AutoFilter.Range.Offset(1, 7).Resize(, 1).Copy [k15]
RAN, а этот код разве скопирует только видимые ячейки?
 
А проверить?
 
RAN, да, действительно) это я фильтрацию с группировкой строк перепутал
Страницы: 1
Наверх