Если посмотреть в окне Lokals, то 6 в массив попадает. Только не пойму - зачем цикл? Сразу забрать диапазон в массив быстрее и проще. P.S. У вас на строку
Я вот понял что версии разные Excel, в которых я тестирую макрос ... В 2003 только цифра 6 выводится, а в 2007 все буквы, но без цифры 6. Да и ошибка возникает в 2003 офисе на Operator:=xlFilterValues ... что делать?
Отбор несколько значений появилось только в 2007 офисе, а в 2003 его нет. А вот вышеуказанная строчка корректно выводит автофильтр, т.е. цифра 6 отображается в автофильтре.
Sub Test()
Dim a()
a() = WorksheetFunction.Transpose([Коллекция&""])
Лист1.Range("A1:A7").AutoFilter Field:=1, Criteria1:=a(), Operator:=xlFilterValues
End Sub
Sub AdvFilter()
Dim rCrit As Range
Set rCrit = Union([Коллекция], [коллекция!A1])
rCrit(1) = [A1] 'копирование заголовка
Range("A1", Cells(Rows.Count, 1).End(xlUp)).AdvancedFilter xlFilterInPlace, rCrit
End Sub
Маленький вопрос ... почему добавляются две кавычки внутри массива (т.е. [Коллекция&""] , а не [Коллекция&]&""? То что к [Коллекция] добавляется знак & я так понял означает краткий тип, т.е. & означает тип Long. А вот эти кавычки ... зачем они? Хотя думаю что это не объявление переменной (она же уже есть), а просто знак соединения ... только как вот это обрабатывает Excel?
Я думаю Владимир объяснит точно и подробно, я же на уровне ощущений (сам первый раз столкнулся) понимаю, что это используется evaluate и перевод значений в строку конкатенацией к значению пустой строки.