Vba: как использовать автофильтр с несколькими критериями


Вы можете использовать следующие методы для использования автофильтра в VBA с несколькими критериями:

Способ 1. Используйте автофильтр с несколькими критериями в одном столбце

 Sub FilterMultipleCriteria()

With Range(" A1:C11 ")
    .AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With

End Sub

Этот конкретный макрос будет фильтровать все строки в диапазоне A1:C11 , где значение первого столбца равно «A» или «C».

Способ 2. Используйте автофильтр с несколькими критериями в нескольких столбцах

 Sub FilterMultipleCriteria()

With Range(" A1:C11 ")
    .AutoFilter Field:=1, Criteria1:=" A "
    .AutoFilter Field:=2, Criteria1:=" Guard "
End With

End Sub

Этот конкретный макрос будет фильтровать диапазон A1:C11, чтобы отображать только строки, в которых первый столбец равен «A», а второй столбец — «Guard».

В следующих примерах показано, как использовать каждый из этих методов на практике со следующим набором данных в Excel:

Пример 1. Использование автофильтра с несколькими критериями в столбце

Допустим, мы хотим отфильтровать набор данных, чтобы отображались только строки, первый столбец которых равен «A» или «C».

Для этого мы можем создать следующий макрос:

 Sub FilterMultipleCriteria()

With Range(" A1:C11 ")
    .AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With

End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что набор данных был отфильтрован так, чтобы отображались только строки с первым столбцом, равным «A» или «C».

Примечание . Мы включили в функцию Array() только два возможных значения, но вы можете включать столько, сколько захотите.

Пример 2. Использование автофильтра с несколькими критериями в нескольких столбцах

Допустим, мы хотим отфильтровать набор данных, чтобы отображались только строки, в которых значение столбца «Команда» равно A , а значение столбца «Позиция» равно «Охранник».

Для этого мы можем создать следующий макрос:

 Sub FilterMultipleCriteria()

With Range(" A1:C11 ")
    .AutoFilter Field:=1, Criteria1:=" A "
    .AutoFilter Field:=2, Criteria1:=" Guard "
End With

End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Я заметил, что набор данных был отфильтрован так, чтобы отображались только строки, в которых значение в столбце «Команда» равно A , а значение в столбце «Позиция» равно «Защитник».

Примечание . Полную документацию по методу VBA AutoFilter можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: как фильтровать сводные таблицы
VBA: как очистить фильтры
VBA: как удалить повторяющиеся значения

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *