Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выделение результатов фильтрации и перенос на другой лист. - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выделение результатов фильтрации и перенос на другой лист.
Luxes Дата: Вторник, 21.01.2014, 19:20 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Нужна помощь. Необходимо после фильтрации к примеру по "Названию", выделить макросом результаты этой самой фильтрации. Но вот тут возникает проблема, если пользоваться "ActiveSheet.Range("a1").CurrentRegion.Select" то увы выделяется и заголовок, чего необходимо избежать. Так что вопрос, как выделить результаты фильтрации?

P.S Заменить "а1" на ячейку которая после фильтрации находится под ней нельзя, так как если применить фильтр Название -> *Вкладыши*, то там будет одна ячейка, а если Название -> *Бензонасос*, то другая, а тут нужен универсальный способ выделения для любого фильтра.
К сообщению приложен файл: 412.xls (51.5 Kb)


Сообщение отредактировал Luxes - Вторник, 21.01.2014, 19:24
 
Ответить
СообщениеНужна помощь. Необходимо после фильтрации к примеру по "Названию", выделить макросом результаты этой самой фильтрации. Но вот тут возникает проблема, если пользоваться "ActiveSheet.Range("a1").CurrentRegion.Select" то увы выделяется и заголовок, чего необходимо избежать. Так что вопрос, как выделить результаты фильтрации?

P.S Заменить "а1" на ячейку которая после фильтрации находится под ней нельзя, так как если применить фильтр Название -> *Вкладыши*, то там будет одна ячейка, а если Название -> *Бензонасос*, то другая, а тут нужен универсальный способ выделения для любого фильтра.

Автор - Luxes
Дата добавления - 21.01.2014 в 19:20
KuklP Дата: Вторник, 21.01.2014, 20:29 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
ActiveSheet.Range("a1").CurrentRegion.offset(1).specialcells(12).copy куда_копировать


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеActiveSheet.Range("a1").CurrentRegion.offset(1).specialcells(12).copy куда_копировать

Автор - KuklP
Дата добавления - 21.01.2014 в 20:29
Luxes Дата: Вторник, 21.01.2014, 21:11 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ActiveSheet.Range("a1").CurrentRegion.offset(1).specialcells(12)


Моя искренняя благодарность, работает. Но честно признаться не понимаю принципа. Вот offset(1) - это как бы смещение на одну ячейку вниз, если в конце всей команды добавить Select, то будет добавляться и пустая ячейка и specialcells(12) - что это за команда и почему двенадцать? Так если можете разъясните по подробней что делает связка offset(1).specialcells(12), а то все работает, а почему не понимаю.
 
Ответить
Сообщение
ActiveSheet.Range("a1").CurrentRegion.offset(1).specialcells(12)


Моя искренняя благодарность, работает. Но честно признаться не понимаю принципа. Вот offset(1) - это как бы смещение на одну ячейку вниз, если в конце всей команды добавить Select, то будет добавляться и пустая ячейка и specialcells(12) - что это за команда и почему двенадцать? Так если можете разъясните по подробней что делает связка offset(1).specialcells(12), а то все работает, а почему не понимаю.

Автор - Luxes
Дата добавления - 21.01.2014 в 21:11
KuklP Дата: Вторник, 21.01.2014, 21:53 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Да, offset(1) это смещение на одну строку вниз. Ну захватит оно пустую строку и что? Кому она мешает? На результате ее не видно :) Можно нагородить гораздо более сложную конструкцию с resize(чтоб без пустой), но зачем? Если мы не вставляем результат в средину существующей таблицы, то это всегда будет лишним. А specialcells(12) - это только видимые ячейки. Не стесняйтесь пользоваться встроенной справкой. По поводу select, activate - избегайте этих команд везде. Они только замедляют выполнение. Практически всегда можно обойтись без них.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеДа, offset(1) это смещение на одну строку вниз. Ну захватит оно пустую строку и что? Кому она мешает? На результате ее не видно :) Можно нагородить гораздо более сложную конструкцию с resize(чтоб без пустой), но зачем? Если мы не вставляем результат в средину существующей таблицы, то это всегда будет лишним. А specialcells(12) - это только видимые ячейки. Не стесняйтесь пользоваться встроенной справкой. По поводу select, activate - избегайте этих команд везде. Они только замедляют выполнение. Практически всегда можно обойтись без них.

Автор - KuklP
Дата добавления - 21.01.2014 в 21:53
Luxes Дата: Среда, 22.01.2014, 16:25 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо за объяснение. И да смещение на один вниз не проблема. Просто непонятно было что такое specialcells(12), но как я понял "12" это "xlCellTypeVisible". Справка в VBA к сожалению на английском, честно признаться мне это усложняет жизнь.


Сообщение отредактировал Luxes - Среда, 22.01.2014, 16:29
 
Ответить
СообщениеСпасибо за объяснение. И да смещение на один вниз не проблема. Просто непонятно было что такое specialcells(12), но как я понял "12" это "xlCellTypeVisible". Справка в VBA к сожалению на английском, честно признаться мне это усложняет жизнь.

Автор - Luxes
Дата добавления - 22.01.2014 в 16:25
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!