Excel VBA: Разширен филтър с множество критерии в диапазон (5 метода) -

  • Споделя Това
Hugh West

Когато работите с големи количества данни и се налага да зададете няколко филтъра едновременно, Разширено филтриране в Excel Тя може да се прилага и за почистване на данните чрез премахване на копия. Разширен филтър . VBA В този урок ще ви покажем как да приложите Разширен филтър на VBA за множество критерии в Excel .

Изтегляне на работна тетрадка за практика

Изтеглете тази учебна тетрадка, за да се упражнявате, докато четете тази статия.

Разширен филтър VBA.xlsm

5 ефективни метода за усъвършенстван филтър на VBA с множество критерии в диапазон в Excel

В следващите раздели по-долу ще обсъдим 5 методи за използване Разширен филтър на VBA за няколко критерия. Първоначално може да се наложи да знаете синтаксиса на Разширен филтър на VBA .

Синтаксис на разширен филтър във VBA:

  • AdvancedFilter: се отнася до обект от обхвата. Можете да зададете обхвата, в който искате да приложите филтъра.
  • Действие: е задължителен аргумент, който има две опции, xlFilterInPlace или xlFilterCopy . xlFilterInPlace се използва за филтриране на стойността в мястото, където се намира наборът от данни. xlFilterCopy се използва за получаване на стойността на филтъра на друго желано място.
  • CriteriaRange: представлява критерия, по който ще се филтрира стойността.
  • CopyToRange: е мястото, където ще запазите резултатите от филтъра.
  • Уникално: е незадължителен аргумент. Използвайте Истински за филтриране само на уникалните стойности. В противен случай по подразбиране се разглежда като Фалшив .

На изображението по-долу е предоставен примерен набор от данни, за да приложим всички филтри, които искаме да извършим.

1. Прилагане на усъвършенстван филтър VBA за критериите OR в диапазон в Excel

При първия метод ще приложим ИЛИ критерии, използвайки Разширен филтър на VBA . Да речем, че искаме да филтрираме данните за името на продукта Бисквитки и Шоколад За да приложите ИЛИ критерии, трябва да поставите стойността в различни редове. За да изпълните задачата, следвайте описаните по-долу стъпки.

Стъпка 1:

  • Натиснете Alt + 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 

  • В резултат на това ще получите предишната версия на набора от данни.

Прочетете още: Excel VBA примери за разширен филтър с критерии (6 критерия)

2. Извършване на разширен филтър VBA за критериите AND в диапазон в Excel

Подобно на предишния метод, сега ще извършим VBA Разширен филтър за И Да кажем, че искаме да знаем бисквитките с цена от $0.65 както е показано на екрана по-долу. За прилагане на ИЛИ критерии, трябва да поставите стойността в различни колони. И критерии, следвайте инструкциите по-долу.

Стъпка 1:

  • За да отворите Макрос на VBA , натиснете Alt + 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

Можете също така да приложите ИЛИ и И критериите в комбинация. Например искате да получите стойностите за Бисквитки или Шоколади , но за Бисквитки, има и друг критерий - цена $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 Макрос, като натиснете Alt + 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 , натиснете Alt + 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 служителите ще отговорят на запитванията ви възможно най-бързо.

Останете с нас и продължавайте да се учите.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.