Excel VBA: Pokročilý filter s viacerými kritériami v rozsahu (5 metód) -

  • Zdieľajte To
Hugh West

Pri práci s veľkým množstvom údajov a potrebe nastaviť viacero filtrov naraz, Rozšírené filtrovanie na stránke Excel Môže sa použiť aj na vyčistenie údajov odstránením kópií. Pri použití Rozšírený filter ,. VBA V tomto návode vám ukážeme, ako aplikovať Rozšírený filter VBA pre viacero kritérií v rozsahu Excel .

Stiahnite si cvičebnicu

Stiahnite si tento cvičebný zošit, aby ste si počas čítania tohto článku precvičili svoje zručnosti.

Pokročilý filter VBA.xlsm

5 efektívnych metód pre pokročilý filter VBA s viacerými kritériami v rozsahu v programe Excel

V nasledujúcich častiach sa budeme zaoberať 5 metódy, ktoré sa majú používať Rozšírený filter VBA pre viacero kritérií. Najprv budete možno potrebovať poznať syntax príkazu Rozšírený filter VBA .

Syntax pokročilého filtra VBA:

  • AdvancedFilter: odkazuje na objekt rozsahu. Môžete nastaviť rozsah, v ktorom chcete použiť filter.
  • Akcia: je povinný argument, ktorý má dve možnosti, xlFilterInPlace alebo xlFilterCopy . xlFilterInPlace sa používa na filtrovanie hodnoty v mieste, kde sa nachádza súbor údajov. xlFilterCopy sa používa na získanie hodnoty filtra na inom požadovanom mieste.
  • KritériáRange: predstavuje kritérium, podľa ktorého sa bude hodnota filtrovať.
  • CopyToRange: je miesto, kam sa ukladajú výsledky filtrovania.
  • Jedinečné: je nepovinný argument. Použite Pravda aby sa filtrovali len jedinečné hodnoty. V opačnom prípade sa štandardne považuje za False .

Na obrázku nižšie je k dispozícii vzorový súbor údajov, na ktorý sa vzťahujú všetky filtre, ktoré chceme vykonať.

1. Použitie pokročilého filtra VBA pre kritériá OR v rozsahu v programe Excel

V prvej metóde použijeme ALEBO kritériá pomocou Rozšírený filter VBA . Povedzme, že chceme filtrovať údaje pre názov produktu Cookies a Čokoláda Uplatnenie ALEBO kritérií, mali by ste hodnoty umiestniť do rôznych riadkov. Pri vykonávaní tejto úlohy postupujte podľa nižšie uvedených krokov.

Krok 1:

  • Tlač Alt + F11 otvoriť Makro VBA .
  • Kliknite na Vložiť.
  • Vyberte si Modul.

Krok 2:

  • Potom vložte nasledujúci text VBA kód na použitie ALEBO.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Deklarovať premennú pre rozsah súboru údajov a pre rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastaviť umiestnenie a rozsah rozsahu súboru údajov a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Použiť pokročilý filter na filtrovanie súboru údajov pomocou kritériíDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 3:

  • Potom program uložte a stlačte F5 spustiť.
  • Preto sa vám zobrazia filtrované výsledky, ako je znázornené na obrázku nižšie.

Poznámky. Ak chcete zvrátiť proces alebo odstrániť všetku filtračnú pastu a spustiť VBA program.

 Sub Remove_All_Filter() On Error Resume Next 'príkaz na odstránenie všetkých filtrov na zobrazenie predchádzajúceho súboru údajov ActiveSheet.ShowAllData End Sub 

  • Výsledkom bude predchádzajúca verzia súboru údajov.

Čítajte viac: Príklady pokročilého filtra Excel VBA s kritériami (6 kritérií)

2. Vykonajte pokročilý filter VBA pre kritériá AND v rozsahu v programe Excel

Podobne ako v predchádzajúcej metóde, aj teraz vykonáme VBA Rozšírený filter pre A povedzme, že chceme poznať cookies s cenou $0.65 ako je znázornené na obrázku nižšie. Na použitie ALEBO kritériá, mali by ste umiestniť hodnotu do rôznych stĺpcov. A postupujte podľa nižšie uvedených pokynov.

Krok 1:

  • Otvorenie Makro VBA , stlačte Alt + F11
  • Po otvorení Makro VBA , vložte tieto údaje VBA kódy v novom module.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Deklarovať premennú pre rozsah súboru údajov a pre rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastaviť umiestnenie a rozsah rozsahu súboru údajov a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Použiť pokročilý filter na filtrovanie súboru údajov pomocou kritériíDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 2:

  • Tlač F5 na spustenie programu po jeho uložení.
  • Nakoniec získajte vyfiltrované výsledky.

Prečítajte si viac: VBA na kopírovanie údajov do iného hárka s pokročilým filtrom v programe Excel

3. Využitie pokročilého filtra VBA pre OR s kritériami AND v rozsahu v programe Excel

Môžete tiež použiť ALEBO a A kritériá v kombinácii. Napríklad chcete získať hodnoty pre Cookies alebo Čokolády , ale pre Cookies, existuje ďalšie kritérium cena $0.65 Postupujte podľa nižšie uvedených postupov.

Krok 1:

  • Vložte nasledujúce VBA kódy po otvorení Makro VBA .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Deklarovať premennú pre rozsah súboru údajov a pre rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastaviť umiestnenie a rozsah rozsahu súboru údajov a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Použiť pokročilý filter na filtrovanie súboru údajov pomocou kritériíDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 2:

  • Potom program najprv uložte a stlačte tlačidlo F5 na jeho spustenie.
  • Následne nájdete hodnoty s určitými A a ALEBO.

Čítajte viac: Použitie pokročilého filtra na základe viacerých kritérií v jednom stĺpci v programe Excel

Podobné čítanie:

  • Pokročilý filter s viacerými kritériami v programe Excel (15 vhodných príkladov)
  • Dynamický pokročilý filter Excel (VBA & Makro)
  • Ako používať rozšírený filter vo VBA (návod krok za krokom)
  • Pokročilý filter s rozsahom kritérií v programe Excel (18 aplikácií)
  • Rozšírený filter programu Excel nefunguje (2 dôvody aamp; riešenia)

4. Použitie pokročilého filtra VBA pre jedinečné hodnoty s viacerými kritériami v programe Excel

Okrem toho, ak máte v súbore údajov duplikáty, môžete ich pri filtrovaní odstrániť. Pridáme Jedinečné argument na Pravda aby ste získali len jedinečné hodnoty a odstránili duplikáty. Postupujte podľa uvedených pokynov.

Krok 1:

  • Najprv otvorte VBA Makro stlačením Alt + F11.
  • Vložte nasledujúce VBA kódy v novom module.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Deklarovať premennú pre rozsah súboru údajov a pre rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastaviť umiestnenie a rozsah rozsahu súboru údajov a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Použiť pokročilý filter na filtrovanie súboru údajov pomocou kritériíDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub 

Krok 2:

  • Potom stlačte tlačidlo F5 na spustenie programu po uložení.
  • Preto získate hodnoty len pre jedinečné.

Prečítajte si viac: Ako používať pokročilý filter len pre jedinečné záznamy v programe Excel

5. Vykonajte pokročilý filter VBA pre podmienený prípad

Okrem predchádzajúcich metód môžete použiť aj podmienky pomocou vzorcov. Celkové ceny ktoré sú väčšie ako $100 Ak to chcete dosiahnuť, postupujte podľa nasledujúcich krokov.

Krok 1:

  • Po prvé, otvoriť Makro VBA , stlačte Alt + F11 .
  • Vyberte nový Modul a vložte nasledujúci text Kódy VBA .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Deklarovať premennú pre rozsah súboru údajov a pre rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastaviť umiestnenie a rozsah rozsahu súboru údajov a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Použiť pokročilý filter na filtrovanie súboru údajov pomocou kritériíDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 2:

  • Po druhé, uložte program a stlačte tlačidlo F5 zobrazíte výsledky.

Poznámky. Okrem toho môžete získať výsledky v priaznivom priestore, či už v novom rozsahu alebo v novom pracovnom hárku, použitím príkazu xlFilterCopy Jednoducho vložte VBA kódy a spustiť ich, aby ste získali výsledky v List6 v dosahu B4:E11 .

 'Deklarovať premennú pre rozsah súboru údajov a pre rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastaviť umiestnenie a rozsah rozsahu súboru údajov a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Použiť pokročilý filter na filtrovanie súboru údajov pomocou kritérií Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub 

  • Následne si pozrite konečný výsledok v novom pracovnom hárku 'Sheet6' .

Prečítajte si viac: Ako používať pokročilý filter, ak rozsah kritérií obsahuje text v programe Excel

Záver

Dúfam, že ste teraz pochopili, ako používať VBA pokročilý filter v Excel na filtrovanie viacerých rozsahov kritérií. Všetky tieto metódy by ste mali používať pri výučbe a precvičovaní s vašimi údajmi. Prelistujte si cvičebnicu a využite, čo ste sa naučili. Vďaka vašej životne dôležitej podpore sme inšpirovaní pokračovať v prezentovaní takýchto seminárov.

Ak máte akékoľvek otázky, neváhajte nás kontaktovať. V komentároch nižšie nám dajte vedieť, čo si myslíte.

Stránka Exceldemy zamestnanci budú na vaše otázky reagovať čo najrýchlejšie.

Zostaňte s nami a učte sa ďalej.

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.