Excel VBA: Zaawansowany filtr z wieloma kryteriami w zakresie (5 metod) -.

  • Udostępnij To
Hugh West

W przypadku pracy z dużymi ilościami danych i konieczności ustawienia wielu filtrów jednocześnie, Zaawansowane filtrowanie w Excel Może być również zastosowany do czyszczenia danych poprzez usuwanie kopii. Podczas stosowania Filtr zaawansowany , VBA W tym tutorialu pokażemy jak zastosować VBA Filtr zaawansowany dla zakresu wielu kryteriów w Excel .

Pobierz Zeszyt ćwiczeń

Pobierz ten zeszyt ćwiczeń, aby ćwiczyć podczas czytania tego artykułu.

VBA Advanced Filter.xlsm

5 Skutecznych metod dla VBA Zaawansowany filtr z wieloma kryteriami w zakresie w Excelu

W kolejnych rozdziałach omówimy 5 metody do wykorzystania VBA Filtr zaawansowany dla wielu kryteriów. Na początku może być potrzebna znajomość składni VBA Filtr zaawansowany .

VBA Advanced Filter Syntax:

  • AdvancedFilter: odnosi się do obiektu zakresu. Możesz ustawić swój zakres, w którym chcesz zastosować filtr.
  • Działanie: jest wymaganym argumentem, który ma dwie opcje, xlFilterInPlace lub xlFilterCopy . xlFilterInPlace służy do filtrowania wartości w miejscu, w którym znajduje się zbiór danych. xlFilterCopy służy do uzyskania wartości filtra w innej pożądanej lokalizacji.
  • CriteriaRange: przedstawia kryteria, według których wartość będzie filtrowana.
  • CopyToRange: to miejsce, w którym będziesz zapisywać wyniki filtrowania.
  • Unikalne: jest argumentem opcjonalnym. Użyj Prawdziwe aby filtrować tylko unikalne wartości. W przeciwnym razie domyślnie jest traktowany jako Fałszywy .

Na poniższym obrazku znajduje się przykładowy zestaw danych, na którym możemy zastosować wszystkie filtry, które chcemy wykonać.

1) Zastosuj filtr zaawansowany VBA dla kryteriów OR w zakresie w Excelu

W pierwszej metodzie zastosujemy LUB kryteria z wykorzystaniem VBA Filtr zaawansowany Powiedzmy, że chcemy filtrować dane pod kątem nazwy produktu Cookies oraz Czekolada Aby zastosować LUB kryteria, powinieneś umieścić wartości w różnych wierszach. Aby wykonać zadanie, postępuj zgodnie z poniższymi krokami.

Krok 1:

  • Naciśnij Alt + F11 aby otworzyć Makro VBA .
  • Kliknij na Wkładka.
  • Wybierz Moduł.

Krok 2:

  • Następnie wklej następujące elementy VBA kod, aby zastosować OR.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ustaw lokalizację i zakres datase range and criteria range Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Zastosuj filtr zaawansowany, aby przefiltrować zbiór danych przy użyciu kryteriówDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 3:

  • Następnie zapisz program i naciśnij F5 do uruchomienia.
  • W związku z tym otrzymasz przefiltrowane wyniki, jak pokazano na poniższym obrazku.

Uwagi. Aby odwrócić proces lub usunąć całą pastę filtracyjną i uruchomić VBA program.

 Sub Remove_All_Filter() On Error Resume Next 'polecenie usunięcia wszystkich filtrów, aby pokazać poprzedni zbiór danych ActiveSheet.ShowAllData End Sub 

  • W rezultacie otrzymasz poprzednią wersję swojego zestawu danych.

Czytaj więcej: Excel VBA Przykłady zaawansowanego filtra z kryteriami (6 kryteriów)

2) Wykonaj filtr zaawansowany VBA dla kryteriów AND w zakresie w Excelu

Podobnie jak w przypadku poprzedniej metody, teraz wykonamy VBA Zaawansowany filtr dla ORAZ kryteria. Powiedzmy, że chcemy poznać ciasteczka o cenie $0.65 jak pokazano na poniższym zrzucie ekranu. Do zastosowania LUB kryteria, powinieneś umieścić wartości w różnych kolumnach. Aby zastosować ORAZ kryteria, postępuj zgodnie z poniższymi instrukcjami.

Krok 1:

  • Aby otworzyć Makro VBA , naciśnij Alt + F11
  • Po otwarciu Makro VBA , wkleić VBA kody w nowym module.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ustaw lokalizację i zakres zakresu dataset range i criteria range Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Zastosuj filtr zaawansowany do filtrowania zbioru danych przy użyciu kryteriówDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 2:

  • Naciśnij F5 aby uruchomić program po jego zapisaniu.
  • Na koniec uzyskaj przefiltrowane wyniki.

Read More: VBA do kopiowania danych do innego arkusza z zaawansowanym filtrem w Excelu

3) Wykorzystanie zaawansowanego filtra VBA dla kryteriów OR z AND w zakresie w Excelu

Można również zastosować LUB i ORAZ kryteria w połączeniu. Na przykład, chcesz uzyskać wartości dla Cookies lub Czekolady , ale za Cookies, jest jeszcze jedno kryterium cena $0.65 Wykonaj poniższe procedury, aby to zrobić.

Krok 1:

  • Wklej następujące elementy VBA kody po otwarciu Makro VBA .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ustaw lokalizację i zakres zakresu dataset range i criteria range Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Zastosuj filtr zaawansowany, aby przefiltrować zbiór danych przy użyciu kryteriów.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 2:

  • Następnie należy najpierw zapisać program, naciskając F5 aby go uruchomić.
  • W związku z tym, znajdziesz wartości z pewnymi ORAZ oraz OR.

Read More: Zastosuj filtr zaawansowany oparty na wielu kryteriach w jednej kolumnie w Excelu

Podobne Lektury:

  • Zaawansowany filtr z wieloma kryteriami w Excelu (15 odpowiednich przykładów)
  • Dynamiczny zaawansowany filtr Excel (VBA & Macro)
  • Jak używać zaawansowanego filtra w VBA (przewodnik krok po kroku)
  • Zaawansowany filtr z zakresem kryteriów w programie Excel (18 aplikacji)
  • Excel Advanced Filter Not Working (2 Reasons & Solutions)

4. użycie zaawansowanego filtra VBA dla unikalnych wartości z wieloma kryteriami w Excelu

Ponadto, jeśli masz duplikaty w swoim zestawie danych, możesz je usunąć podczas filtrowania.Dodamy Wyjątkowa argument do Prawdziwe aby uzyskać tylko unikalne wartości i usunąć duplikaty. Postępuj zgodnie z przedstawionymi instrukcjami.

Krok 1:

  • Po pierwsze, otwórz VBA Makro poprzez naciśnięcie Alt + F11.
  • Wklej następujące elementy VBA kody w nowym module.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ustaw lokalizację i zakres zakresu dataset range i criteria range Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Zastosuj filtr zaawansowany do filtrowania zbioru danych przy użyciu kryteriówDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub 

Krok 2:

  • Następnie naciśnij F5 aby uruchomić program po zapisaniu.
  • Dlatego uzyskasz wartości tylko dla unikalnych.

Czytaj więcej: Jak używać zaawansowanego filtra tylko dla unikalnych rekordów w Excelu

5. Wykonaj filtr zaawansowany VBA dla przypadku warunkowego

Oprócz poprzednich metod, można również zastosować warunki za pomocą formuł. Na przykład, chcemy znaleźć Ceny ogółem które są większe niż $100 Aby to osiągnąć, wystarczy wykonać te kroki.

Krok 1:

  • Po pierwsze, aby otworzyć Makro VBA , naciśnij Alt + F11 .
  • Wybierz nowy Moduł i wkleić Kody VBA .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Set the location and range of dataset range and criteria range Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Apply Advanced Filter to filter the dataset using the criteria.Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Krok 2:

  • Po drugie, zapisz program i naciśnij przycisk F5 aby zobaczyć wyniki.

Uwagi. Dodatkowo możesz uzyskać wyniki w korzystnym miejscu, czy to w nowym zakresie, czy w nowym arkuszu, stosując xlFilterCopy Akcja. Po prostu, wklej VBA kody i uruchomić je, aby uzyskać wyniki w Plansza6 w zasięgu B4:E11 .

 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ustaw lokalizację i zakres dataset range i criteria range Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Zastosuj Advanced Filter, aby przefiltrować zbiór danych za pomocą kryteriów Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub 

  • W rezultacie zobacz wynik końcowy w nowym arkuszu 'Arkusz6' .

Read More: Jak używać zaawansowanego filtra, jeśli zakres kryteriów zawiera tekst w Excelu

Wniosek

Podsumowując, mam nadzieję, że teraz rozumiesz jak używać VBA zaawansowany filtr w Excel do filtrowania wielu zakresów kryteriów. Wszystkie te metody powinny być wykorzystywane do nauki i praktyki z danymi. Przejrzyj podręcznik do ćwiczeń i wykorzystaj to, czego się nauczyłeś. Dzięki Twojemu istotnemu wsparciu możemy kontynuować prezentowanie seminariów takich jak to.

Jeśli masz jakiekolwiek pytania, nie wahaj się z nami skontaktować. Daj nam znać, co myślisz w sekcji komentarzy poniżej.

Na stronie Exceldemy Pracownicy odpowiedzą na Twoje zapytania tak szybko, jak to możliwe.

Zostań z nami i ucz się dalej.

Hugh West jest bardzo doświadczonym trenerem i analitykiem Excela z ponad 10-letnim doświadczeniem w branży. Posiada tytuł licencjata w dziedzinie rachunkowości i finansów oraz tytuł magistra administracji biznesowej. Hugh ma pasję do nauczania i opracował unikalne podejście do nauczania, które jest łatwe do naśladowania i zrozumienia. Jego specjalistyczna wiedza na temat programu Excel pomogła tysiącom studentów i profesjonalistów na całym świecie doskonalić swoje umiejętności i osiągać doskonałe wyniki w karierze. Za pośrednictwem swojego bloga Hugh dzieli się swoją wiedzą ze światem, oferując bezpłatne samouczki programu Excel i szkolenia online, aby pomóc osobom indywidualnym i firmom w pełni wykorzystać swój potencjał.