Оглавление
При работе с большими объемами данных и необходимости установки нескольких фильтров одновременно, Расширенная фильтрация в Excel также может быть использован для очистки данных путем удаления копий. Во время применения функции Расширенный фильтр , the VBA Код намного легче выполнять. В этом учебнике мы покажем вам, как применять Расширенный фильтр VBA для диапазона нескольких критериев в Excel .
Скачать Рабочую тетрадь для практических занятий
Скачайте эту рабочую тетрадь для тренировок, чтобы заниматься во время чтения этой статьи.
VBA Расширенный фильтр.xlsm5 эффективных методов расширенного фильтра VBA с несколькими критериями в диапазоне в Excel
В следующих разделах ниже мы обсудим 5 методы использования Расширенный фильтр VBA для нескольких критериев. Сначала вам может понадобиться знать синтаксис выражения Расширенный фильтр VBA .
Синтаксис расширенного фильтра VBA:
- AdvancedFilter: относится к объекту диапазона. Вы можете задать свой диапазон, в котором вы хотите применить фильтр.
- Действия: является обязательным аргументом, который имеет два варианта, xlFilterInPlace или xlFilterCopy . xlFilterInPlace используется для фильтрации значения в том месте, где находится набор данных. xlFilterCopy используется для получения значения фильтра в другом желаемом месте.
- КритерииДиапазон: представляет собой критерий, по которому будет отфильтровано значение.
- CopyToRange: это место, где вы будете сохранять результаты фильтрации.
- Уникальный: является необязательным аргументом. Используйте Правда аргумент для фильтрации только уникальных значений. В противном случае, по умолчанию, он рассматривается как Ложь .
На изображении ниже представлен примерный набор данных для применения всех фильтров, которые мы хотим выполнить.
1. Применение расширенного фильтра VBA для критериев ИЛИ в диапазоне в Excel
В первом методе мы будем применять ИЛИ критерии, используя Расширенный фильтр VBA Допустим, мы хотим отфильтровать данные по названию продукта. Cookies и Шоколад . Для применения ИЛИ критерии, необходимо разместить значения в разных строках. Для выполнения задания выполните описанные ниже шаги.
Шаг 1:
- Нажмите Альт + F11 чтобы открыть Макрос VBA .
- Нажмите на Вставка.
- Выберите Модуль.
Шаг 2:
- Затем вставьте следующее VBA код для применения ИЛИ.
Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Объявляем переменную для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Применяем расширенный фильтр для фильтрации набора данных по критериямDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Шаг 3:
- Затем сохраните программу и нажмите кнопку F5 бежать.
- Таким образом, вы получите отфильтрованные результаты, как показано на рисунке ниже.
Примечания. Чтобы обратить процесс вспять или удалить всю фильтровальную пасту, выполните следующие действия VBA программа.
Sub Remove_All_Filter() On Error Resume Next 'команда удаления всех фильтров для отображения предыдущего набора данных ActiveSheet.ShowAllData End Sub
- В результате вы получите предыдущую версию вашего набора данных.
Подробнее: Примеры расширенного фильтра с критериями (6 критериев) в Excel VBA
2. Выполните расширенный фильтр VBA для критериев AND в диапазоне в Excel
Аналогично предыдущему методу, теперь мы выполним процедуру VBA Расширенный фильтр для И критерии. Допустим, мы хотим узнать печенье с ценой $0.65 как показано на скриншоте ниже. Для применения ИЛИ критерии, вы должны поместить значение в разные столбцы. Чтобы применить критерий И критерии, следуйте приведенным ниже инструкциям.
Шаг 1:
- Чтобы открыть Макрос VBA , нажмите Альт + F11
- После открытия Макрос VBA , вставьте следующее VBA коды в новом Модуле.
Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Объявляем переменную для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Применяем расширенный фильтр для фильтрации набора данных по критериямDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Шаг 2:
- Нажмите F5 чтобы запустить программу после ее сохранения.
- Наконец, получите отфильтрованные результаты.
Читать далее: VBA для копирования данных на другой лист с расширенным фильтром в Excel
3. Использование расширенного фильтра VBA для критериев OR с AND в диапазоне в Excel
Вы также можете применить ИЛИ и И критерии в комбинации. Например, вы хотите получить значения для Cookies или Шоколадные конфеты , но для Печенье, есть еще один критерий цена $0.65 будут применены. Для этого выполните следующие действия.
Шаг 1:
- Вставьте следующее VBA коды после открытия Макрос VBA .
Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Объявляем переменную для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Применяем расширенный фильтр для фильтрации набора данных с использованием критериевDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Шаг 2:
- Затем сохраните программу, сначала нажав кнопку F5 чтобы запустить его.
- Следовательно, вы найдете значения с определенными И и ИЛИ.
Подробнее: Применение расширенного фильтра на основе нескольких критериев в одном столбце в Excel
Похожие чтения:
- Расширенный фильтр с несколькими критериями в Excel (15 подходящих примеров)
- Динамический расширенный фильтр Excel (VBA & Macro)
- Как использовать расширенный фильтр в VBA (пошаговое руководство)
- Расширенный фильтр с диапазоном критериев в Excel (18 приложений)
- Расширенный фильтр Excel не работает (2 причины и решения)
4. использование расширенного фильтра VBA для уникальных значений с несколькими критериями в Excel
Более того, если в вашем наборе данных есть дубликаты, вы можете удалить их при фильтрации. Мы добавим параметр Уникальный аргумент к Правда чтобы получить только уникальные значения и удалить дубликаты. Следуйте изложенным инструкциям.
Шаг 1:
- Во-первых, откройте VBA Макрос, нажав кнопку Альт + F11.
- Вставьте следующее VBA коды в новом Модуле.
Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Объявляем переменную для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Применяем расширенный фильтр для фильтрации набора данных по критериямDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub
Шаг 2:
- Затем нажмите F5 чтобы запустить программу после сохранения.
- Поэтому вы получите значения только для уникальных.
Подробнее: Как использовать расширенный фильтр только для уникальных записей в Excel
5. Выполните расширенный фильтр VBA для условного случая
В дополнение к предыдущим методам, вы также можете применять условия с помощью формул. Например, мы хотим найти Общие цены которые больше, чем $100 Для этого просто выполните следующие действия.
Шаг 1:
- Во-первых, чтобы открыть Макрос VBA , нажмите Альт + F11 .
- Выберите новый Модуль и вставьте следующее Коды VBA .
Sub Apply_VBA_Advanced_Filter_for_Formula() 'Объявляем переменную для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Применяем расширенный фильтр для фильтрации набора данных по критериямDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Шаг 2:
- Во-вторых, сохраните программу и нажмите кнопку F5 чтобы увидеть результаты.
Примечания. Кроме того, вы можете получить результаты в благоприятном пространстве, будь то в новом диапазоне или на новом рабочем листе, применив функцию xlFilterCopy действие. Просто, вставьте VBA коды и запустите их, чтобы получить результаты в Лист6 в диапазоне B4:E11 .
'Объявляем переменные для диапазона набора данных и диапазона критериев Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Устанавливаем расположение и диапазон диапазона набора данных и диапазона критериев Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Применяем расширенный фильтр для фильтрации набора данных по критериям Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub
- Соответственно, посмотрите конечный результат в новом рабочем листе 'Sheet6' .
Подробнее: Как использовать расширенный фильтр, если диапазон критериев содержит текст в Excel
Заключение
Подводя итог, я надеюсь, что теперь вы понимаете, как использовать VBA усовершенствованный фильтр в Excel для фильтрации нескольких диапазонов критериев. Все эти методы следует использовать для обучения и практики с вашими данными. Просмотрите практическое пособие и примените полученные знания на практике. Благодаря вашей жизненно важной поддержке мы можем продолжать проводить подобные семинары.
Если у вас возникли вопросы, пожалуйста, обращайтесь к нам. Пожалуйста, дайте нам знать, что вы думаете в разделе комментариев ниже.
Сайт Exceldemy сотрудники ответят на ваши запросы как можно быстрее.
Оставайтесь с нами и продолжайте учиться.