Автофільтр VBA

У VBA можна створювати Автофільтр для фільтрації діапазону клітинок або таблиці Excel. У цьому уроці ви дізнаєтесь, як творити Автофільтр для одного або декількох стовпців та для кількох умов.

Якщо ви хочете дізнатися, як використовувати розширений фільтр у VBA, натисніть тут: Розширений фільтр VBA

Створення автофільтра у VBA

По -перше, ви побачите, як просто творити Автофільтр в діапазоні, тому користувач може фільтрувати дані. Дані, які ми будемо використовувати у прикладах, зображені на зображенні 1:

Зображення 1. Дані для прикладів автофільтрації

Ось код для створення Автофільтр:

1 Аркуш 1. Діапазон ("A1: E1"). Автофільтр

Для того, щоб увімкнути Автофільтр, нам потрібно вказати заголовок діапазону, в нашому випадку A1: E1, і скористатися Автофільтр метод об’єкта Діапазон. В результаті в нашому діапазоні даних активовано фільтри:

Зображення 2. Для даних увімкнено автофільтр

Автофільтр з параметрами поля та критеріїв

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

Для цього потрібно використовувати параметри Поле та Критерії 1 методу Автофільтр. У цьому прикладі ми хочемо відфільтрувати третій стовпець (Продукт) за Виріб А тільки. Ось код:

12 Аркуш 1. Діапазон ("A1: E1"). Поле автофільтра: = 3, _Критерії1: = "Продукт А"

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

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

Як бачите, лише рядки з Виріб А у третьому стовпці відображаються в діапазоні даних.

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

Якщо потрібно відфільтрувати одне поле з кількома значеннями, потрібно скористатися параметром Оператор з Автофільтр метод. Щоб відфільтрувати кілька значень, потрібно встановити Оператор до xlFilterValues а також поставити всі значення Критерії в масиві. У цьому прикладі ми фільтруємо Продукт стовпець для Виріб А та Продукт В.. Ось приклад коду:

123 Аркуш 1. Діапазон ("A1: E1"). Поле автофільтра: = 3, _Критерії1: = Масив ("Продукт А", "Продукт В"), _Оператор: = xlFilterValues

Коли ми виконуємо код, ми отримуємо лише рядки з Продуктом А та Продуктом В, як ви можете бачити на зображенні 4:

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

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

Якщо ви хочете відфільтрувати поле з кількома критеріями, вам потрібно скористатися Критерії 1 та Критерії 2 параметри, але також і Оператор xlAnd.

У наступному прикладі ми відфільтруємо перший стовпець (Дата) для дат у грудні 2022 р. Отже, у нас є два критерії: дата, більша за 01.01.18 та менша за 31.12.18. Це код:

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

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

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

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

У наступній таблиці. ви можете побачити всі можливі значення Оператор параметр методу автофільтра та їх опис:

Оператор Опис
xlІ Містить кілька критеріїв - Критерії1 та Критерії 2
xlOr Включає один із численних критеріїв - Критерії1 або Критерії 2
xlTop10Items Фільтрує певну кількість найвищих рейтингових значень (кількість, зазначена у Критерії1)
xlBottom10Items Фільтрує певну кількість найнижчих рейтингових значень (кількість, зазначена у Критерії1)
xlTop10Percent Фільтрує певний відсоток найвищих рейтингових значень (%, зазначений у Критерії1)
xlBottom10Percent Фільтрує певний відсоток найнижчих рейтингових значень (%, зазначений у Критерії1)
xlFilterValues Містить декілька значень критеріїв з масивом
xlFilterCellColor Фільтрує клітинки для кольорів
xlFilterFontColor Фільтрує клітинки для кольорів шрифту
xlFIlterIcon Значки фільтрів
xlFilterDynamic Фільтруйте динамічні значення

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

wave wave wave wave wave