Код на VBA для фільтрації даних в Excel (8 прикладів)

  • Поділитися Цим
Hugh West

Excel Команда Сортування та фільтрація має обмежений діапазон до Фільтрувати дані Але використовуючи VBA ви можете Фільтрувати дані в широкому діапазоні за вашим бажанням. Ця стаття надасть вам 8 корисних прикладів для використання VBA код на Фільтрувати дані в Excel з використанням VBA коди з яскравими ілюстраціями.

Завантажити Практичний посібник

Ви можете завантажити безкоштовний шаблон Excel за посиланням і потренуватися самостійно.

Код VBA для фільтрації даних.xlsm

8 прикладів використання коду VBA для фільтрації даних в Excel

Давайте спочатку ознайомимося з нашим набором даних, який представляє деякі стать, статус та вік студентів .

1. Використання коду VBA для фільтрації даних на основі текстового критерію в Excel

У нашому найпершому прикладі ми використаємо VBA до Фільтр тільки Чоловік студенти з України, Росії, Білорусі та Казахстану Стать стовпчик набору даних.

Сходинки:

  • Клацніть правою кнопкою миші на назва аркуша .
  • Тоді виберіть Переглянути код від Контекстне меню .

Незабаром після цього VBA відкриється вікно.

  • Тип наступне коди в ньому...
 Sub Filter_Data_Text() Worksheets("Текстові критерії").Range("B4").AutoFilter Field:=2, Criteria1:="Чоловік" End Sub 
  • В подальшому мінімізувати VBA

Розподіл кодів

  • Тут я створив Sub процедуру, Filter_Data_Text() .
  • Потім використовували Діапазон власності, щоб задекларувати нашу відповідну назва аркуша і діапазон
  • Далі я використовував метод автофільтрації використовувати Критерії на мій вибір, де Поле:=2 засоби колонка 2 І Критерії1:="Чоловік" до Фільтр дані за Чоловік.
  • Після цього до відкритий в "Урядовому кур'єрі". Діалогове вікно "Макроси , клацнути наступним чином: Розробник> Макроси.

  • Виберіть в "Урядовому кур'єрі". Назва макросу як зазначено в коди .
  • Нарешті, просто натиснути кнопку Виконати .

А тепер подивіться, що у нас є тільки Дані про студентів-чоловіків після Фільтрація .

Читати далі: Фільтрація даних в Excel на основі значення комірки (6 ефективних способів)

2. застосування коду VBA для фільтрації даних з декількома критеріями в одному стовпці

Ось, ми будемо Фільтр для декількох критеріїв в одному стовпчику. З третього стовпчика набору даних Фільтр для Випускник і Аспірант студенти.

Сходинки:

  • Виконайте перші два кроки про перший приклад для відкриття Вікно VBA .
  • До зустрічі, тип наступне коди в ньому...
 Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub 
  • Потім мінімізуйте VBA

Розподіл кодів

  • Тут я створив Sub процедуру, Фільтр_один_стовпець() .
  • Потім використовували Діапазон власності, щоб задекларувати нашу відповідну назва аркуша і діапазон
  • Далі я використовував метод автофільтрації скористатися послугами Критерії на мій вибір, де Поле:=3 засоби графа 3 Ось, Критерій1:="Випускник" і Критерії2:="Аспірант" до Фільтр студентський Статус .
  • Нарешті, я використовував Оператор:=xlOr подати заявку АБО умова Фільтр за багатьма критеріями.
  • У цей момент, слідувати в "Урядовому кур'єрі". третій крок від перший приклад для відкриття Діалогове вікно макросів ящик .
  • До зустрічі, вибрати зазначений Назва макросу і натиснути кнопку Виконати .

Незабаром після цього ви отримаєте відфільтровані рядки на основі декількох критеріїв, як на зображенні нижче.

Читати далі: Фільтрація за кількома критеріями в Excel (4 підходящих способи)

3. Застосування коду VBA для фільтрації даних з декількома критеріями в різних стовпцях в Excel

Тепер ми будемо Фільтр за кількома критеріями - Чоловік і Випускник студенти.

Сходинки:

  • Виконайте перші два кроки про перший приклад для відкриття VBA
  • До зустрічі, писати наступне коди в ньому...
 Sub Фільтр_Різні_стовпці() With Аркуші("Різні стовпці").Діапазон("B4") .Автофільтр Поле:=2, Критерії1:="Чоловік" .Автофільтр Поле:=3, Критерії1:="Випускник" End With End Sub 
  • Після цього згорнути вікно VBA .

Розподіл кодів

  • Тут я створив Sub процедуру, Фільтр_Різні_Стовпці() .
  • Потім я скористався З інструкція із застосування Багатоколонна .
  • Потім використовували Діапазон власності, щоб задекларувати нашу відповідну назва аркуша і діапазон
  • Далі я використовував метод автофільтрації використовувати Критерії на мій вибір, де Поле:=2 засоби колонка 2 і Поле:=3 засоби графа 3 .
  • Тут відібрані Критерії1:="Чоловік" для Стать стовпчик і Критерій1:="Випускник" для Статус стовпчик до Фільтр дані з різні колонки .
  • Тоді виконати третій крок від перший приклад для відкриття Діалогове вікно "Макроси .
  • До зустрічі, вибрати зазначений Назва макросу і натиснути кнопку Виконати .

Ось результати за багатьма критеріями.

Читати далі: Фільтрація в Excel VBA в одному стовпці за кількома критеріями (6 прикладів)

4. Використання коду VBA для фільтрації топ-3 елементів в Excel

У цьому прикладі ми відфільтруємо трійка кращих студентів відповідно до їхніх вік .

Сходинки:

  • Виконайте перші два кроки про перший приклад для відкриття Вікно VBA .
  • Тоді тип наступне коди в ньому...
 Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Поле:=4, Критерії1:="3", Оператор:=xlTop10Items End Sub 
  • Після цього мінімізуйте Вікно VBA .

Розподіл кодів

  • Тут я створив Sub процедуру, Filter_Top3_Items() .
  • А потім використовували Оператор:=xlTop10Items до Фільтр для трійка лідерів дані .
  • Зараз виконати третій крок від перший приклад для відкриття Діалогове вікно макросів ящик .
  • Тоді вибрати назву макросу як зазначено в кодексах та натиснути кнопку Виконати .

Тоді ви отримаєте результат, як на зображенні нижче

Читати далі: Як фільтрувати на основі значення комірки за допомогою Excel VBA (4 способи)

Схожі читання

  • Як скопіювати та вставити при застосуванні фільтра в Excel
  • Як відфільтрувати унікальні значення в Excel (8 простих способів)
  • Фільтрація декількох критеріїв в Excel за допомогою VBA (як І, так і АБО)
  • Як використовувати текстовий фільтр в Excel (5 прикладів)
  • Як відфільтрувати за датою в Excel (4 швидких способи)

5. Використання коду VBA для фільтрації перших 50 відсотків в Excel

Використовуємо VBA коди для фільтрації перші п'ятдесят відсотків студентів з урахуванням їх віку .

Сходинки:

  • По-перше, Виконайте перші два кроки про перший приклад для відкриття Вікно VBA .
  • До зустрічі, тип наступне коди в ньому...
 Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Поле:=4, Критерії1:="50", Оператор:=xlTop10Percent End Sub 
  • Звести до мінімуму Вікно VBA .

Розподіл кодів

  • Тут я створив Sub процедуру, Filter_Top50_Percent() .
  • Пізніше використовувався Оператор:=xlTop10Percent до Відфільтрувати перші п'ятдесят відсотків від стовпчик-4 .
  • У цей момент, виконати третій крок від перший приклад для відкриття Діалогове вікно Макроси.
  • Тоді вибрати зазначений Назва макросу і натиснути кнопку Виконати .

Всього було проведено 7 студентів так що для 50 відсотків він показує приблизно троє студентів .

Читати далі: Як використовувати формулу відсотка прибутку в Excel (3 приклади)

6. застосування коду VBA для фільтрації даних з використанням підстановки

Ми можемо використовувати Підстановочні символи-* (зірочка) в VBA коди для фільтрації даних в Excel. З меню Стовпчик статусу ми відфільтруємо тільки значення, які містять 'Post' .

Сходинки:

  • Виконайте перші два кроки про перший приклад для відкриття Вікно VBA .
  • Тоді писати наступне коди в ньому...
 Sub Filter_with_Wildcard() ActiveSheet.Range("B4").AutoFilter Поле:=3, Criteria1:="*Посада*" End Sub 
  • В подальшому мінімізувати Вікно VBA .

Розподіл кодів

  • Тут я створив Sub процедуру, Фільтр_з_Wildcard() .
  • Потім використовується Діапазон ("B4") для встановлення діапазону.
  • Далі , використаний Автофільтр до Фільтр в Поле:=3 засоби колонка 3.
  • Критерії1:="*Посада*" до Фільтр значення, які містять 'Post'.
  • Зараз виконати третій крок від перший приклад для відкриття Діалогове вікно Макроси.
  • Виберіть зазначений Назва макросу і натиснути кнопку Виконати .

Тоді ви отримаєте бажаний результат.

Читати далі: Як додати фільтр в Excel (4 способи)

7. Вбудовування Excel VBA для копіювання відфільтрованих даних на новий аркуш в Excel

Бачимо, що в моєму наборі даних є відфільтровані дані. Тепер я скопіюю їх на новий аркуш за допомогою команди VBA . Ці коди не будуть коректно працювати в аркуші, їх потрібно буде застосувати в модулі.

Сходинки:

  • Натисніть Alt+F11 для відкриття VBA

  • Потім натисніть Вставка> Модуль до відкрити модуль .

  • Зараз писати наступне коди -
 Sub Copy_Filtered_Data_NewSheet() Dim xRng As Range Dim xWS As Worksheet If Worksheets("Копіювати відфільтровані дані").AutoFilterMode = False Then MsgBox "Відфільтрованих даних немає" Exit Sub End If Set xRng = Worksheets("Копіювати відфільтровані дані").AutoFilter.Range Set xWS = Worksheets.Add xRng.Copy Range("G4") End Sub 
  • Потім мінімізуйте VBA

Розподіл кодів

  • Тут я створив Sub процедуру, Копіювати_відфільтровані_дані на новий аркуш() .
  • Після цього оголошується двозмінна - x Rng В якості діапазону і xWS Як аркуш паперу.
  • Потім використовується an Звіт про фінансові результати перевірити Відфільтрований
  • Пізніше використовувався MsgBox щоб показати результат.
  • Потім використовується Аркуші("Копіювати відфільтровані дані").Автофільтр.діапазон для того, щоб вибрати Відфільтрований асортимент та використані Додати щоб додати новий аркуш.
  • Нарешті, Копіювати діапазон("G4") скопіює Відфільтрований даних до новий аркуш .
  • До зустрічі, виконати третій крок від перший приклад для відкриття Діалогове вікно "Макроси .
  • Тоді вибрати зазначений Назва макросу і натиснути кнопку Виконати .

Тепер бачимо, що Excel відкрив новий аркуш і скопіював відфільтровані рядки.

Читати далі: Ярлик для фільтра Excel (3 швидких способи використання з прикладами)

8. застосування коду VBA для фільтрації даних за допомогою випадаючого списку

У нашому останньому прикладі ми спочатку створимо випадаючий список для статі, а потім використаємо його для фільтрації даних. Для цього я розмістив гендерні критерії в іншому місці, і ми створимо випадаючий список у Комірка D14 .

Сходинки:

  • Виберіть Комірка D14 .
  • Тоді клацнути наступним чином: Data> Data Tools> Data Validation> Валідація даних.

Незабаром після цього діалогове вікно відкриється.

Вибрати список від Дозволити випадаючий список .

Тоді натисніть на іконку Відкрити від Вихідне вікно .

Зараз вибрати діапазон критеріїв і натиснути кнопку Enter .

  • На даний момент, якраз натисніть OK .

Тепер наші випадаючий Список готовий.

  • Зараз Виконайте перші два кроки про перший приклад для відкриття Вікно VBA .
  • Тоді писати наступне коди в ньому...
 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$14" Then If Range("D14") = "All" Then Range("B4").AutoFilter Else Range("B4").AutoFilter Поле:=2, Критерії1:=Range("D14") End If End If End Sub 
  • Тоді згорнути вікно VBA .

Розподіл кодів

  • Тут я створив Приватний підводний човен процедуру, Worksheet_Change(ByVal Target As Range).
  • Потім я вибрав Робочий аркуш від Генеральний і Зміна від Заяви .
  • Потім встановіть значення Адреса щоб знати місцезнаходження.
  • Нарешті, в рамках ЯКЩО використовувався оператор Автофільтр метод з Поле і Критерії
  • Тепер просто вибрати критерії з випадаючого списку та Буде активовано фільтр .

А ось і Відфільтрований виводиться після вибору Чоловік від випадаючий .

Читати далі: Як відфільтрувати за списком на іншому аркуші в Excel (2 способи)

Практична секція

Ви отримаєте практичний аркуш у файлі Excel, наведеному вище, для відпрацювання пояснених способів.

Висновок

Сподіваюся, що описані вище процедури будуть достатньо ефективними для використання VBA код на Фільтр Не соромтеся задавати будь-які питання в коментарях і, будь ласка, дайте мені зворотній зв'язок.

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.