Obsah
Při práci s velkým množstvím dat a při potřebě nastavit více filtrů najednou, Pokročilé filtrování na adrese Excel Může být také použita k vyčištění dat odstraněním kopií. Při použití funkce Rozšířený filtr ... VBA V tomto tutoriálu vám ukážeme, jak aplikovat Pokročilý filtr VBA pro více kritérií v rozsahu Excel .
Stáhnout cvičebnici
Stáhněte si tento cvičební sešit a procvičujte si při čtení tohoto článku.
Pokročilý filtr VBA.xlsm5 efektivních metod pro pokročilý filtr VBA s více kritérii v rozsahu v aplikaci Excel
V následujících kapitolách se budeme zabývat 5 metody, které lze použít Pokročilý filtr VBA pro více kritérií. Zpočátku budete možná potřebovat znát syntaxi příkazu Pokročilý filtr VBA .
Syntaxe pokročilého filtru VBA:
- AdvancedFilter: odkazuje na objekt rozsahu. Můžete nastavit rozsah, na který chcete filtr použít.
- Akce: je povinný argument, který má dvě možnosti, xlFilterInPlace nebo xlFilterCopy . xlFilterInPlace se používá k filtrování hodnoty v místě, kde se nachází datová sada. xlFilterCopy slouží k získání hodnoty filtru na jiném požadovaném místě.
- KritériaRange: představuje kritérium, podle kterého bude hodnota filtrována.
- CopyToRange: je místo, kam se ukládají výsledky filtrování.
- Unikátní: je nepovinný argument. Pravda aby se filtrovaly pouze jedinečné hodnoty. V opačném případě se ve výchozím nastavení považuje za. False .
Na obrázku níže je uvedena ukázková sada dat, na kterou lze použít všechny filtry, které chceme provést.
1. Použití pokročilého filtru VBA pro kritéria OR v rozsahu v aplikaci Excel
V první metodě použijeme NEBO kritéria pomocí Pokročilý filtr VBA . Řekněme, že chceme filtrovat data podle názvu produktu. Soubory cookie a Čokoláda . Chcete-li použít NEBO kritéria, měli byste hodnotu umístit do různých řádků. Při provádění úkolu postupujte podle níže uvedených kroků.
Krok 1:
- Tisk Alt + F11 otevřít Makro VBA .
- Klikněte na Vložit.
- Vyberte si Modul.
Krok 2:
- Pak vložte následující VBA kód pro použití NEBO.
Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Deklarujte proměnnou pro rozsah datasetu a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavte umístění a rozsah rozsahu datasetu a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Použijte pokročilý filtr pro filtrování datasetu pomocí kritérií.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Krok 3:
- Poté program uložte a stiskněte tlačítko F5 spustit.
- Proto se zobrazí filtrované výsledky, jak je znázorněno na obrázku níže.
Poznámky. Chcete-li proces zvrátit nebo odstranit veškerou filtrační pastu a spustit funkci VBA program.
Sub Remove_All_Filter() On Error Resume Next 'příkaz k odstranění všech filtrů pro zobrazení předchozího souboru dat ActiveSheet.ShowAllData End Sub
- Výsledkem bude předchozí verze sady dat.
Další informace: Příklady pokročilého filtru Excel VBA s kritérii (6 kritérií)
2. Proveďte pokročilý filtr VBA pro kritéria AND v rozsahu v aplikaci Excel
Podobně jako u předchozí metody provedeme nyní VBA Rozšířený filtr pro A Řekněme, že chceme znát cookies s cenou $0.65 jak je znázorněno na obrázku níže. Pro použití funkce NEBO kritéria, měli byste hodnotu umístit do různých sloupců. Chcete-li použít kritérium A postupujte podle níže uvedených pokynů.
Krok 1:
- Otevření Makro VBA , stiskněte tlačítko Alt + F11
- Po otevření Makro VBA , vložte následující VBA kódy v novém modulu.
Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Deklarujte proměnnou pro rozsah datového souboru a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavte umístění a rozsah rozsahu datového souboru a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Použijte pokročilý filtr pro filtrování datového souboru pomocí kritérií.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Krok 2:
- Tisk F5 spustit program po jeho uložení.
- Nakonec získáte filtrované výsledky.
Přečtěte si více: Kopírování dat do jiného listu pomocí pokročilého filtru v aplikaci Excel pomocí VBA
3. Využití pokročilého filtru VBA pro kritéria OR s AND v rozsahu v aplikaci Excel
Můžete také použít NEBO a A kritéria v kombinaci. Například chcete získat hodnoty pro Soubory cookie nebo Čokolády , ale pro Soubory cookie, existuje další kritérium cena $0.65 Bude použito. Postupujte podle níže uvedených postupů.
Krok 1:
- Vložte následující VBA kódy po otevření Makro VBA .
Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Deklarujte proměnnou pro rozsah datového souboru a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavte umístění a rozsah rozsahu datového souboru a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Použijte pokročilý filtr pro filtrování datového souboru pomocí kritérií.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Krok 2:
- Poté program nejprve uložte stisknutím tlačítka F5 k jeho spuštění.
- V důsledku toho najdete hodnoty s určitými A a NEBO.
Další informace: Použití pokročilého filtru na základě více kritérií v jednom sloupci v aplikaci Excel
Podobné čtení:
- Pokročilý filtr s více kritérii v aplikaci Excel (15 vhodných příkladů)
- Dynamický pokročilý filtr Excelu (VBA & Makro)
- Jak používat pokročilý filtr ve VBA (návod krok za krokem)
- Pokročilý filtr s rozsahem kritérií v aplikaci Excel (18 aplikací)
- Nefungující pokročilý filtr aplikace Excel (2 důvody & řešení)
4. Použití pokročilého filtru VBA pro jedinečné hodnoty s více kritérii v aplikaci Excel
Navíc, pokud máte v souboru dat duplikáty, můžete je při filtrování odstranit. Přidáme Unikátní argument na Pravda získat pouze jedinečné hodnoty a odstranit duplikáty. Postupujte podle uvedených pokynů.
Krok 1:
- Nejprve otevřete VBA Makro stisknutím tlačítka Alt + F11.
- Vložte následující VBA kódy v novém modulu.
Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Deklarujte proměnnou pro rozsah datového souboru a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavte umístění a rozsah rozsahu datového souboru a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Použijte pokročilý filtr pro filtrování datového souboru pomocí kritérií.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub
Krok 2:
- Pak stiskněte tlačítko F5 spustit program po uložení.
- Proto získáte hodnoty pouze pro jedinečné.
Další informace: Jak používat pokročilý filtr pouze pro jedinečné záznamy v aplikaci Excel
5. Proveďte pokročilý filtr VBA pro podmíněný případ
Kromě předchozích metod můžete také použít podmínky pomocí vzorců. Například chceme zjistit. Celkové ceny které jsou větší než $100 . Chcete-li toho dosáhnout, postupujte podle následujících kroků.
Krok 1:
- Za prvé, otevřít Makro VBA , stiskněte tlačítko Alt + F11 .
- Vyberte nový Modul a vložte následující Kódy VBA .
Sub Apply_VBA_Advanced_Filter_for_Formula() 'Deklarujte proměnnou pro rozsah datového souboru a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavte umístění a rozsah rozsahu datového souboru a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Použijte pokročilý filtr pro filtrování datového souboru pomocí kritérií.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Krok 2:
- Za druhé uložte program a stiskněte tlačítko F5 zobrazit výsledky.
Poznámky. Kromě toho můžete získat výsledky v příznivém prostoru, ať už v novém rozsahu nebo v novém pracovním listu, použitím příkazu xlFilterCopy jednoduše vložte VBA a spustit je, abyste získali výsledky v List6 v dosahu B4:E11 .
'Deklarovat proměnnou pro rozsah datasetu a pro rozsah kritérií Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Nastavit umístění a rozsah rozsahu datasetu a rozsahu kritérií Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Použít pokročilý filtr pro filtrování datasetu pomocí kritérií Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub
- Následně si prohlédněte konečný výsledek v novém pracovním listu. 'Sheet6' .
Další informace: Jak používat pokročilý filtr, pokud rozsah kritérií obsahuje text v aplikaci Excel
Závěr
Doufám, že jste nyní pochopili, jak používat funkci VBA pokročilý filtr v Excel k filtrování více rozsahů kritérií. Všechny tyto metody by měly být použity k výuce a procvičení práce s daty. Projděte si cvičebnici a využijte to, co jste se naučili. Díky vaší zásadní podpoře jsme inspirováni k tomu, abychom mohli v pořádání podobných seminářů pokračovat.
Pokud máte jakékoli dotazy, neváhejte se na nás obrátit. Dejte nám prosím vědět, co si o tom myslíte, v komentářích níže.
Na stránkách Exceldemy na vaše dotazy odpoví co nejrychleji.
Zůstaňte s námi a učte se dál.