Макрофильтр Excel на основе нескольких значений ячеек - PullRequest
0 голосов
/ 06 июля 2018

У меня есть этот простой макрос, который фильтрует строки по значению в ячейке A13. Работает нормально.

 With ActiveSheet

    .Range("B2:F5000").AutoFilter Field:=2, Criteria1:=.Range("A13")

End With

Но мне нужно больше значений, которые будут применены к этому фильтру, особенно на основе двух или более ячеек. Итак, я запускаю этот макрос:

With ActiveSheet

    .Range("B2:F5000").AutoFilter Field:=2, Criteria1:=.Range("A13:A14:A15")

End With

Но он фильтрует только значения, основанные на ячейке A15. Это почему? Я прочитал все темы здесь, но нет решения этой конкретной проблемы. Спасибо за вашу помощь. Libor.

1 Ответ

0 голосов
/ 06 июля 2018
  1. Сначала удалите старый автофильтр
  2. Фильтр на Field:=1. Если ваш диапазон начинается в столбце B, а вы хотите фильтровать в столбце B, то это первое поле, а не второе.
  3. Если вы хотите фильтровать по значениям / числам, а не по тексту, фильтруйте, используя формулу вместо значения. Например, =200 для фильтрации по номеру 200.

Вот пример, который должен работать.

With ActiveSheet 'better reference a sheet by its name like: Worksheets("Sheet1")
    If .AutoFilterMode = True Then .AutoFilterMode = False 'remove old autofilter
    .Range("B:F").AutoFilter Field:=1, Operator:=xlFilterValues, _ 
       Criteria1:=Array("=" & .Range("A13").Value, "=" & .Range("A14").Value, "=" & .Range("A15").Value)
End With
...