Съдържание
Когато работите с големи количества данни и се налага да зададете няколко филтъра едновременно, Разширено филтриране в Excel Тя може да се прилага и за почистване на данните чрез премахване на копия. Разширен филтър . VBA В този урок ще ви покажем как да приложите Разширен филтър на VBA за множество критерии в Excel .
Изтегляне на работна тетрадка за практика
Изтеглете тази учебна тетрадка, за да се упражнявате, докато четете тази статия.
Разширен филтър VBA.xlsm5 ефективни метода за усъвършенстван филтър на 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 служителите ще отговорят на запитванията ви възможно най-бързо.
Останете с нас и продължавайте да се учите.