На этом шаге мы рассмотрим назначение и примеры использования этого метода.
Метод AutoFilter (Автофильтр) представляет собой простой способ запроса и фильтрации данных на рабочем листе. Если AutoFilter активизирован, то каждый заголовок поля выделенного диапазона данных превращается в поле с раскрывающимся списком. Выбирая запрос на вывод данных в поле с раскрывающимся списком, вы осуществляете вывод только тех записей, которые удовлетворяют указанным условиям. Поле с раскрывающимся списком содержит следующие типы условий:
Вручную метод запускается посредством выбора команды Данные | Фильтр | Автофильтр (Data | Filter | AutoFilter).
При применении метода AutoFilter допустимы два синтаксиса.
Объект.AutoFilter
Объект.AutoFilter(field, criteria1, operator, criteria2)
Аргументы:
Аргумент | Назначение |
---|---|
field | Целое значение, указывающее поле, в котором производится фильтрация данных |
criteria1 и criteria2 | Задают два возможных условия фильтрации поля. Допускается использование строковой постоянной, например "101", и знаков отношений >, < ,>=, <=, =, <> |
operator | Допустимые значения:
|
При работе с фильтрами полезны метод ShowAllData и свойства FilterMode и AutoFilterMode.
Приведем соответствие между аргументами метода AutoFilter и выполнением команды Данные | Фильтр | Автофильтр (Data | Filter | AutoFilter) при фильтрации базы данных регистрации туристов.
Рис.1. Раскрывающиеся списки метода AutoFilter
В этих раскрывающихся списках предлагаются варианты допустимой фильтрации. В методе AutoFilter за диапазон с названиями полей отвечает объект, к которому применяется метод. В данном случае метод AutoFilter надо применить к диапазону Range("A1:E1").
Рис.2. Фильтрация списка по критерию Афины
С этой целью в раскрывающемся списке поля Направление тура выберем Афины. В результате на рабочем листе будут выведены только записи, соответствующие турам в Афины. В методе AutoFilter за выбор поля, в котором производится фильтрация, отвечает аргумент Field. В данном случае для выбора поля Направление тура аргументу Field надо присвоить значение 4. За критерии, покоторым производится фильтрация, отвечают аргументы criteria1 и criteria2. В данном случае фильтрация производилась по одному критерию — Афины, поэтому только аргументу criteria1 надо присвоить значение Афины. Таким образом, имеем:
Range ("A1:E1").Select Selection.AutoFilter Selection.AutoFilter Field:=4, Criteria1:="Афины"
Рис.3. Диалоговое окно Пользовательский автофильтр
Например, отфильтруем все туры в Афины и Берлин. В методе AutoFilter это соответствует присвоению аргументам criteria1 и criteria2 значений Афины и Берлин соответственно, а аргументу operator — значения хlOr, т.к. будут отображаться либо туры в Афины, либо в Берлин. Таким образом, имеем:
Range ("A1:E1").Select Selection.AutoFilter Selection.AutoFilter Field:=4, Criteria1:="=Афины", Operator:=xlOr, _ Criteria2 :="=Берлин"
На следующем шаге мы рассмотрим метод AdvancedFilter.