Метод Range.AutoFilter (Excel)
Фильтрует список с помощью автофильтра.
Синтаксис
выражение.AutoFilter (Field, Criteria1, Operator, Criteria2, SubField, VisibleDropDown)
выражение: выражение, возвращающее объект Range.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Field | Необязательный | Variant | Целочисленное смещение поля, на основе которого требуется создать фильтр (слева от списка; крайнее левое поле — значение 1). |
Criteria1 | Необязательный | Variant | Условия (строка, например "101"). Используйте "=" для поиска пустых полей, "<>" для поиска непустых полей и "> для выбора полей (Нет данных) в типах данных. |
Возвращаемое значение
Примечания
Если опустить все аргументы, этот метод просто переключает отображение стрелок раскрывающихся списков автофильтров в указанном диапазоне.
В Excel для Mac этот метод не поддерживается. Поддерживаются аналогичные методы для Selection и ListObject.
В отличие от формул, во вложенных полях не требуется использовать квадратные скобки для добавления пробелов.
Пример
В этом примере выполняется фильтрация списка, начинающегося в ячейке A1 на листе "Лист1", чтобы отображались только те записи, в которых первое поле содержит строку "Otis". Стрелка раскрывающегося списка для поля 1 будет скрыта.
В этом примере выполняется фильтрация списка, начинающегося с ячейки A1 на листе "Лист1", для отображения только тех записей, в которых значения первого поля содержат вложенное поле Admin Division 1 (State/province/other) со значением "Washington".
В этом примере выполняется фильтрация таблицы "Таблица1" на листе "Лист1" для отображения только тех записей, в которых значения первого поля соответствуют отображаемому значению: 1, 3, Seattle или Redmond.
Типы данных могут применять несколько фильтров вложенных полей. В этом примере выполняется фильтрация таблицы "Таблица1" на листе "Лист1" для отображения только тех записей, в которых значения первого поля содержат вложенное поле Time zone(s) со значением "Pacific Time Zone", а вложенное поле Date Founded содержит значение 1851 или "(No Data)".
В этом примере выполняется фильтрация таблицы "Таблица1" на листе "Лист1" для отображения первых 10 записей для первого поля на основе вложенного поля Population.
В этом примере выполняется фильтрация таблицы "Таблица1" на листе "Лист1" для отображения всех записей января и февраля 2019 г. для поля 1. При этом не требуется наличие строки, содержащей 31 января.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Как включить автофильтр в excel vba
На этом шаге мы рассмотрим назначение и примеры использования этого метода .
Метод AutoFilter (Автофильтр) представляет собой простой способ запроса и фильтрации данных на рабочем листе. Если AutoFilter активизирован, то каждый заголовок поля выделенного диапазона данных превращается в поле с раскрывающимся списком. Выбирая запрос на вывод данных в поле с раскрывающимся списком, вы осуществляете вывод только тех записей, которые удовлетворяют указанным условиям. Поле с раскрывающимся списком содержит следующие типы условий:
- Все (All) ,
- Первые десять (Тор 10) ,
- Условие (Custom) ,
- конкретный элемент данных,
- Пустые (Blanks) и
- Непустые (NohBlanks) .
Вручную метод запускается посредством выбора команды Данные | Фильтр | Автофильтр (Data | Filter | AutoFilter) .
При применении метода AutoFilter допустимы два синтаксиса.
Аргумент | Назначение |
---|---|
field | Целое значение, указывающее поле, в котором производится фильтрация данных |
criteria1 и criteria2 | Задают два возможных условия фильтрации поля. Допускается использование строковой постоянной, например "101", и знаков отношений >, =, |
operator | Допустимые значения:
|
При работе с фильтрами полезны метод ShowAllData и свойства FilterMode и AutoFilterMode .
- Метод ShowAllData — показывает все отфильтрованные и неотфильтрованные строки рабочего листа.
- Свойство FilterMode — допустимые значения: True (если на рабочем листе имеются отфильтрованные данные со скрытыми строками), False (в противном случае).
- Свойство AutoFilterMode — допустимые значения: True (если на рабочем листе выведены раскрывающиеся списки метода AutoFilter ), False (в противном случае).
Приведем соответствие между аргументами метода AutoFilter и выполнением команды Данные | Фильтр | Автофильтр (Data | Filter | AutoFilter) при фильтрации базы данных регистрации туристов.
- Выделяем диапазон A1:E1 , содержащий заголовки полей базы данных. Выберем команду Данные | Фильтр | Автофильтр (Data | Filter | AutoFilter) . В результате в заголовках полей появятся раскрывающиеся списки (рисунок 1).
Рис.1. Раскрывающиеся списки метода AutoFilter
В этих раскрывающихся списках предлагаются варианты допустимой фильтрации. В методе AutoFilter за диапазон с названиями полей отвечает объект, к которому применяется метод. В данном случае метод AutoFilter надо применить к диапазону Range("A1:E1") .
- Отфильтруем в базе данных, например, только данные о клиентах, направляющихся в Афины (рисунок 2).
Рис.2. Фильтрация списка по критерию Афины
С этой целью в раскрывающемся списке поля Направление тура выберем Афины . В результате на рабочем листе будут выведены только записи, соответствующие турам в Афины. В методе AutoFilter за выбор поля, в котором производится фильтрация, отвечает аргумент Field . В данном случае для выбора поля Направление тура аргументу Field надо присвоить значение 4. За критерии, покоторым производится фильтрация, отвечают аргументы criteria1 и criteria2 . В данном случае фильтрация производилась по одному критерию — Афины , поэтому только аргументу criteria1 надо присвоить значение Афины . Таким образом, имеем:
Рис.3. Диалоговое окно Пользовательский автофильтр
Например, отфильтруем все туры в Афины и Берлин. В методе AutoFilter это соответствует присвоению аргументам criteria1 и criteria2 значений Афины и Берлин соответственно, а аргументу operator — значения хlOr , т.к. будут отображаться либо туры в Афины, либо в Берлин. Таким образом, имеем:
На следующем шаге мы рассмотрим метод AdvancedFilter .