Автофильтр VBA

В VBA вы можете создать Автофильтр для фильтрации диапазона ячеек или таблицы Excel. В этом уроке вы узнаете, как создавать Автофильтр для одного или нескольких столбцов и для нескольких условий.

Если вы хотите узнать, как использовать расширенный фильтр в VBA, щелкните здесь: Расширенный фильтр VBA

Создание автофильтра в VBA

Сначала вы увидите, как просто создать Автофильтр в диапазоне, чтобы пользователь мог фильтровать данные. Данные, которые мы будем использовать в примерах, представлены на изображении 1:

Изображение 1. Примеры данных для автофильтра

Вот код для создания Автофильтр:

1 Sheet1.Range ("A1: E1"). Автофильтр

Чтобы включить Автофильтр, нам нужно указать заголовок диапазона, в нашем случае A1: E1, и использовать Автофильтр метод объекта Диапазон. В результате в нашем диапазоне данных активированы фильтры:

Изображение 2. Автофильтр включен для данных

Автофильтр с параметрами полей и критериев

VBA также позволяет автоматически фильтровать определенное поле с определенными значениями.

Для этого вам нужно использовать параметры Поле а также Критерии1 метода Автофильтр. В этом примере мы хотим отфильтровать третий столбец (Продукт) для Продукт А Только. Вот код:

12 Sheet1.Range ("A1: E1"). Поле автофильтра: = 3, _Criteria1: = "Продукт A"

в Поле параметр, вы можете установить номер столбца в диапазоне (не в Excel), а в Критерии1 вы можете указать значение, которое хотите отфильтровать. После выполнения кода наша таблица выглядит так:

Изображение 3. Автофильтр с полем и критериями

Как видите, только строки с Продукт А в третьем столбце отображаются диапазон данных.

Автофильтр с полями и значениями нескольких критериев

Если вы хотите отфильтровать одно поле с несколькими значениями, вам нужно использовать параметр Оператор принадлежащий Автофильтр метод. Чтобы отфильтровать несколько значений, вам нужно установить Оператор к xlFilterValues а также поставить все значения Критерии в массиве. В этом примере мы фильтруем Продукт столбец для Продукт А а также Продукт B. Вот пример кода:

123 Sheet1.Range ("A1: E1"). Поле автофильтра: = 3, _Criteria1: = Array («Продукт A», «Продукт B»), _Оператор: = xlFilterValues

Когда мы выполняем код, мы получаем только строки с продуктом A и продуктом B, как вы можете видеть на изображении 4:

Изображение 4. Автофильтр с несколькими значениями критериев

Диапазон данных автофильтрации с несколькими критериями

Если вы хотите отфильтровать поле с несколькими критериями, вы должны использовать Критерии1 а также Критерии2 параметры, но и Оператор xlAnd.

В следующем примере мы отфильтруем первый столбец (Дата) для дат в декабре 2022 года. Следовательно, у нас есть два критерия: дата больше 01.12.18 и меньше 31.12.18. Это код:

1234 Sheet1.Range ("A1: E1"). Поле автофильтра: = 1, _Criteria1: = "> = 12.01.2018", _Оператор: = xlAnd, _Criteria2: = "<= 31.12.2018"

Когда мы выполняем код, вы можете видеть, что в диапазоне данных отображаются только даты в декабре:

Изображение 5. Автофильтр с несколькими критериями для поля

Значения параметров оператора метода автофильтрации

В следующей таблице. вы можете увидеть все возможные значения Оператор параметр метода Автофильтра и их описания:

Оператор Описание
xlAnd Включает несколько критериев - Criteria1 и Criteria 2
xlOr Включает один из нескольких критериев - Criteria1 или Criteria 2
xlTop10Items Фильтрует определенное количество значений с наивысшим рейтингом (число, указанное в Criteria1)
xlBottom10Items Фильтрует определенное количество значений с самым низким рейтингом (число, указанное в Criteria1)
xlTop10Percent Отфильтровывает определенный процент значений с наивысшим рейтингом (%, указанный в Criteria1)
xlBottom10Percent Отфильтровывает определенный процент значений с самым низким рейтингом (%, указанный в Criteria1)
xlFilterValues Включает несколько значений критериев с массивом
xlFilterCellColor Фильтрует ячейки для цветов
xlFilterFontColor Фильтрует ячейки для цветов шрифта
xlFIlterIcon Значки фильтров
xlFilterDynamic Фильтровать динамические значения

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave