Код 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("Text Criteria").Range("B4").AutoFilter Field:=2, Criteria1:="Male" End Sub 
  • В дальнейшем минимизируйте VBA

Разбивка кода

  • Здесь я создал Sub процедура, Filter_Data_Text() .
  • Затем использовал Диапазон свойство, чтобы объявить наши соответствующие название листа и ассортимент
  • Далее я использовал метод автофильтра использовать Критерии по моему выбору, где Поле:=2 означает колонка 2 . And Критерии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 процедура, Filter_One_Column() .
  • Затем использовал Диапазон свойство, чтобы объявить наши соответствующие название листа и ассортимент
  • Далее я использовал метод автофильтра использовать Критерии по моему выбору, где Поле:=3 означает колонка 3 . Здесь, Критерии1:="Выпускник" и Критерии2:="Аспирант" на Фильтр студент Статус .
  • Наконец, я использовал Оператор:=xlOr применять ИЛИ условие Фильтр по нескольким критериям.
  • В данный момент, следить за сайт третий шаг из первый пример чтобы открыть Диалоговое окно макросов ящик .
  • Позже, выберите указанный Имя макроса и нажмите кнопку Выполнить .

Вскоре после этого вы получите отфильтрованные строки на основе нескольких критериев, как показано на рисунке ниже.

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

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

Теперь мы Фильтр по нескольким критериям - Мужчина и Выпускник студенты.

Шаги:

  • Выполните первые два шага из первый пример чтобы открыть VBA
  • Позже, написать следующий коды в нем...
 Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub 
  • После этого свернуть окно VBA .

Разбивка кода

  • Здесь я создал Sub процедура, Filter_Different_Columns() .
  • Затем я использовал С заявление для использования Многократная колонка .
  • Затем использовал Диапазон свойство, чтобы объявить наши соответствующие название листа и ассортимент
  • Далее я использовал метод автофильтра использовать Критерии по моему выбору, где Поле:=2 означает колонка 2 и Поле:=3 означает колонка 3 .
  • Здесь, выбранные Критерии1:="Мужчина" для Пол колонка и Критерии1:="Выпускник" для Статус колонка к Фильтр данные из разные колонки .
  • Затем выполнить третий шаг из первый пример чтобы открыть Диалоговое окно макросов .
  • Позже, выберите указанный Имя макроса и нажмите кнопку Выполнить .

Вот вывод множественных критериев.

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

4. Использование кода VBA для фильтрации 3 верхних элементов в Excel

В этом примере мы будем фильтровать три лучших студента в соответствии с их возраст .

Шаги:

  • Выполните первые два шага из первый пример чтобы открыть окно VBA .
  • Затем тип следующий коды в нем...
 Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub 
  • После этого сверните окно VBA .

Разбивка кода

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

После этого вы получите результат, как показано на рисунке ниже.

Читать далее: Как фильтровать на основе значения ячейки с помощью Excel VBA (4 метода)

Похожие чтения

  • Как копировать и вставлять при применении фильтра в Excel
  • Как фильтровать уникальные значения в Excel (8 простых способов)
  • Фильтр нескольких критериев в Excel с помощью VBA (типы AND и OR)
  • Как использовать текстовый фильтр в Excel (5 примеров)
  • Как фильтровать по дате в Excel (4 быстрых метода)

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

Давайте воспользуемся VBA коды для фильтрации первые пятьдесят процентов студентов в зависимости от их возраста .

Шаги:

  • Первый, Выполните первые два шага из первый пример чтобы открыть окно VBA .
  • Позже, тип следующий коды в нем...
 Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="50", Operator:=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 Field:=3, Criteria1:="*Post*" End Sub 
  • В дальнейшем минимизируйте окно VBA .

Разбивка кода

  • Здесь я создал Sub процедура, Filter_with_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("Copy Filtered Data").AutoFilterMode = False Then MsgBox "Noo filtered data" Exit Sub End If Set xRng = Worksheets("Copy Filtered Data").AutoFilter.Range Set xWS = Worksheets.Add xRng.Copy Range("G4") End Sub 
  • Затем минимизируйте VBA

Разбивка кода

  • Здесь я создал Sub процедура, Copy_Filtered_Data_NewSheet() .
  • После этого объявляются две переменные - x Rng Как диапазон и xWS В виде рабочего листа.
  • Затем использовали сайт утверждение ЕСЛИ проверять Фильтр
  • Позже, использовали MsgBox чтобы показать вывод.
  • Затем использовали Worksheets("Copy Filtered Data").AutoFilter.Range выберите Фильтр ассортимент и используется Добавить чтобы добавить новый лист.
  • Наконец-то, Копировать Диапазон("G4") скопирует Фильтр данные в новый лист .
  • Позже, выполнить третий шаг из первый пример чтобы открыть Диалоговое окно макросов .
  • Затем выберите указанный Имя макроса и нажмите кнопку Выполнить .

Теперь посмотрите, что Excel открыл новый лист и скопировал отфильтрованные строки.

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

8. Применение кода VBA для фильтрации данных с помощью выпадающего списка

В нашем последнем примере мы сначала создадим выпадающий список для полов, а затем будем использовать его для фильтрации данных. Для этого я поместил критерий пола в другое место, и мы создадим выпадающий список в Клетка D14 .

Шаги:

  • Выберите Клетка D14 .
  • Затем нажмите следующим образом: Data> Data Tools> Data Validation> 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 Field:=2, Criteria1:=Range("D14") End If End If End Sub 
  • Затем свернуть окно VBA .

Разбивка кода

  • Здесь я создал Частное подразделение процедура, Worksheet_Change(ByVal Target As Range).
  • Затем я выбрал Рабочий лист с сайта Общий и Изменить с сайта Декларации .
  • Затем установите Адрес чтобы узнать местоположение.
  • Наконец, в пределах ЕСЛИ заявление использовало Автофильтр метод с Поле и Критерии
  • Теперь только выберите критерии из выпадающего списка и Фильтр будет активирован .

Вот Фильтр выход после выбора Мужчина из выпадающий .

Читать далее: Как фильтровать по списку в другом листе в Excel (2 метода)

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

В файле Excel, приведенном выше, вы получите лист для отработки объясненных способов.

Заключение

Я надеюсь, что описанные выше процедуры будут достаточно хороши для использования VBA код для Фильтр Не стесняйтесь задавать любые вопросы в разделе комментариев и, пожалуйста, дайте мне обратную связь.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.