Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Фильтрует список с помощью автофильтра.
Синтаксис
выражение.AutoFilter (Field, Criteria1, Operator, Criteria2, SubField, VisibleDropDown)
выражение: выражение, возвращающее объект Range.
Параметры
| Имя | Обязательный или необязательный | Тип данных | Описание |
|---|---|---|---|
| Field | Необязательный | Variant | Целочисленное смещение поля, на основе которого требуется создать фильтр (слева от списка; крайнее левое поле — значение 1). |
| Criteria1 | Необязательный | Variant | Условия (строка, например "101"). Используйте "=" для поиска пустых полей, "<>" для поиска непустых полей и "><" для выбора полей (Нет данных) в типах данных.Если этот аргумент пропущен, все условия имеют значение All. Если параметру Operator присвоено значение xlTop10Items, параметр Criteria1 указывает количество элементов (например, "10"). |
| Operator | Необязательный | XlAutoFilterOperator | Константа XlAutoFilterOperator, указывающая тип фильтра. |
| Criteria2 | Необязательный | Variant | Второе условие (строка). Используется с параметрами Criteria1 и Operator для создания составных условий. Также используется в качестве одного условия для полей даты, фильтруемых по дате, месяцу или году. За ним следует массив, уточняющий фильтрацию Массив(Уровень, Дата), где "Уровень" принимает значения 0–2 (год,месяц,дата), а "Дата" — одна допустимая дата в периоде фильтрации. |
| SubField | Необязательный | Variant | Поле из типа данных, для которого применяются условия (например, поле Population из типа Geography или поле Volume из типа Stocks). Пропуск этого значения указывает на "(отображаемое значение)". |
| VisibleDropDown | Необязательный | Variant | Значение True, чтобы отобразить стрелку раскрывающегося списка автофильтра для фильтруемого поля. Значение False, чтобы скрыть стрелку раскрывающегося списка автофильтра для фильтруемого поля. По умолчанию используется значение True. |
Возвращаемое значение
Variant
Примечания
Если опустить все аргументы, этот метод просто переключает отображение стрелок раскрывающихся списков автофильтров в указанном диапазоне.
В Excel для Mac этот метод не поддерживается. Поддерживаются аналогичные методы для Selection и ListObject.
В отличие от формул, во вложенных полях не требуется использовать квадратные скобки для добавления пробелов.
Пример
В этом примере выполняется фильтрация списка, начинающегося в ячейке A1 на листе "Лист1", чтобы отображались только те записи, в которых первое поле содержит строку "Otis". Стрелка раскрывающегося списка для поля 1 будет скрыта.
Worksheets("Sheet1").Range("A1").AutoFilter _
Field:=1, _
Criteria1:="Otis", _
VisibleDropDown:=False
В этом примере выполняется фильтрация списка, начинающегося с ячейки A1 на листе "Лист1", для отображения только тех записей, в которых значения первого поля содержат вложенное поле Admin Division 1 (State/province/other) со значением "Washington".
Worksheets("Sheet1").Range("A1").AutoFilter _
Field:=1, _
Criteria1:="Washington", _
SubField:="Admin Division 1 (State/province/other)"
В этом примере выполняется фильтрация таблицы "Таблица1" на листе "Лист1" для отображения только тех записей, в которых значения первого поля соответствуют отображаемому значению: 1, 3, Seattle или Redmond.
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria1:=Array("1", "3", "Seattle", "Redmond"), _
Operator:=xlFilterValues
Типы данных могут применять несколько фильтров вложенных полей. В этом примере выполняется фильтрация таблицы "Таблица1" на листе "Лист1" для отображения только тех записей, в которых значения первого поля содержат вложенное поле Time zone(s) со значением "Pacific Time Zone", а вложенное поле Date Founded содержит значение 1851 или "(No Data)".
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria1:="Pacific Time Zone", _
SubField:="Time Zone(s)"
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria1:=Array("1851", "><"), _
Operator:=xlFilterValues, _
SubField:="Date founded"
В этом примере выполняется фильтрация таблицы "Таблица1" на листе "Лист1" для отображения первых 10 записей для первого поля на основе вложенного поля Population.
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria1:="10", _
Operator:=xlTop10Items, _
SubField:="Population"
В этом примере выполняется фильтрация таблицы "Таблица1" на листе "Лист1" для отображения всех записей января и февраля 2019 г. для поля 1. При этом не требуется наличие строки, содержащей 31 января.
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria2:=Array(1, "1/31/2019", 1, "2/28/2019")
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.