Страницы: 1
RSS
Выбор N значений в автофильтре на VBA (Excel 2010), выбрать все элементы, кроме некоторых
 
Когда необходимо выбрать несколько элементов, то макро-редактор записывает критерий автофильтра в виде:
Criteria1:=Array( x1, x2, ..., xN)

Таким образом, если нужно будет отобрать все элементы, кроме трех-четырех, то получится огромный массив.
Помимо того, что это некрасиво, я еще и не могу знать заранее все элементы, а потому этот массив еще и самому предварительно придётся формировать. Не хочется.

Зато константно известны эти три-четыре элемента. Как правильно и красиво передать эти критерии автофильтру?
 
1. Используйте Расширенный фильтр. Там такие условия легко задать.
2. Если все же необходим автофильтр, придется формировать массив. Удобнее всего так: соберите уникальные значения из столбца в словарь (Scripting.Dictionary) как ключи, исключите требуемые элементы, присвойте Criteria1:= .Keys.
 
Или столбец в массив, при помощи filter исключить ненужные, дальше как у Казанского. Автофильтр сам отберет уникальные. :)
Я сам - дурнее всякого примера! ...
 
Казанский, повторюсь, ищу решение внутри VBA.
1. Поэтому расширенный - не вариант. Проще уж тогда VBA-шкой уникальные отобрать.
2. Да, нужен именно автофильтр. Можно поподробнее про Scripting.Dictionary и .Keys ? Например, ткнуть ссылкой?
 
Цитата
DwMan пишет:
[. Можно поподробнее про Scripting.Dictionary и .Keys ? Например, ткнуть ссылкой?

www.script-coding.com/WSH/Dictionary.html
 
Цитата
...ищу решение внутри VBA. Поэтому расширенный - не вариант.
Не понимаю логики. Почему внутри VBA автофильтр можно, а расширенный нельзя?
Что Вы делаете с отфильтрованными строками?

А примеров использования Scripting.Dictionary и на этом форуме полно.
Страницы: 1
Наверх