2014-01-21 3 views
0

Как фильтровать динамический массив, я искал вокруг, но я могу найти только примеры автофильтра массивов. У меня есть динамический массив, который изменяет содержимое на основе флажков. Затем он будет автофильтировать динамический массив, но я не могу заставить автофильтр работать с динамическим массивом. С ActiveSheetVBA Autofiler Dynamic Array

With ActiveSheet 
    .AutoFilterMode = False 
    .UsedRange.AutoFilter 
    .UsedRange.AutoFilter field:=1, Criteria1:=userid 
    .UsedRange.AutoFilter field:=7, Criterial:=Array_filter 
End With 

Вышеуказанные файлеры две колонны. я могу получить первую работу, но не массив. Пожалуйста, помогите.

ответ

0

Да, вы можете. Но вам нужно использовать параметр с именем Criteria1:

.UsedRange.AutoFilter field:=7, Criteria1:= ... '<< with 1 (one) at the end 

вместо l (эль буквы), которые у вас есть сейчас.

Дополнительная информация после некоторого комментария ниже ответа.

Чтобы получить все элементы из массива, нужно добавить дополнительный параметр в обсуждаемой строке кода:

.UsedRange.AutoFilter field:=7, Criteria1:=Array_filter, Operator:=xlFilterValues 

Operator:=xlFilterValues является ключом к решению.

+0

Ну, черт побери, это глупая ошибка, я потратил часы, пытаясь понять, что пошло не так. Поскольку я ранее компилировал первый автофильтр из макроса, у меня не было проблемы. Другое дело, теперь я могу фильтровать динамический массив, но он фильтрует только первый элемент, а не остальные. Есть идеи? – user3082116

+0

может быть проблемой с ссылками на диапазон. Попробуйте, если '.UsedRagne.Select' охватывает область, которую вы ожидаете отфильтровать. Во-вторых, вы применяете 2 фильтра для столбцов 1 и 7 вместе - должно ли быть больше одного результата? –

+0

, и вы также должны знать [как принять ответ] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) для этого и других вопросов, если они применяются , –