VBA - Как сделать автофильтр на одном поле для более чем двух критериев? - PullRequest
0 голосов
/ 12 мая 2018

Я искал ответ весь день и не могу найти решение своей проблемы. Самая близкая вещь, которую я нашел к моей проблеме, является этой ссылкой прямо здесь:

Использовать автофильтр по более чем 2 критериям

Это мой рабочий лист:

My Worksheet

Это, однако, не решает мою проблему. Я использовал ответ на этот вопрос в качестве основы для моих поисков. Я не получаю никаких ошибок, но когда я запускаю код, он отфильтровывает строки 6-35 (все это!).

Dim calc as Worksheet
Dim lastrow as Integer

Set calc = ThisWorkbook.Sheets("Calc")
lastrow = Application.CountA(Range("A6:A" & Rows.Count)) + 5

calc.Range("A5:T" & lastrow).AutoFilter _
     Field:=4, _
     Criteria1:=Array(3410, 3420, 3440, 3450, 3490, 1445), _
     Operator:=xlFilterValues

Я также попробовал тот же код, но без его части «Оператор», и он фактически фильтрует две строки (строки 6 и 20) с последними критериями в массиве (1445). Но почему не для остальных? Я так потерян и искал часы. Я чувствую, что это ДОЛЖНО быть прямым.

1 Ответ

0 голосов
/ 12 мая 2018

Решение заключается в использовании кавычек для чисел. Другая проблема с вашим кодом заключается в том, что вы определяете последнюю строку на листе active , и этот лист может оказаться не листом calc. Перед ссылками добавьте calc..

...