У 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 | Фільтруйте динамічні значення |