Excel VBA: Geavanceerd filteren met meerdere criteria in een bereik (5 methodes) - De nieuwe versie van Excel VBA.

  • Deel Dit
Hugh West

Wanneer u werkt met grote hoeveelheden gegevens en meerdere filters tegelijk moet instellen, Geavanceerd filteren in Excel Het kan ook worden toegepast om uw gegevens op te schonen door kopieën te verwijderen. Tijdens het toepassen van de Geavanceerd filter de VBA code is veel gemakkelijker uit te voeren. In deze tutorial laten we zien hoe je VBA geavanceerd filter voor meerdere criteria in Excel .

Download Praktijk werkboek

Download dit oefenwerkboek om te oefenen terwijl u dit artikel leest.

VBA Advanced Filter.xlsm

5 Effectieve methoden voor VBA Advanced Filter met meerdere criteria in een bereik in Excel

In de volgende punten bespreken wij 5 te gebruiken methoden VBA geavanceerd filter voor meerdere criteria. In het begin moet u misschien de syntaxis van de VBA geavanceerd filter .

VBA Advanced Filter Syntax:

  • AdvancedFilter: verwijst naar een bereikobject. U kunt uw bereik instellen waar u het filter wilt toepassen.
  • Actie: is een verplicht argument dat twee opties heeft, xlFilterInPlace of xlFilterCopy . xlFilterInPlace wordt gebruikt om de waarde te filteren op de plaats waar de dataset zich bevindt. xlFilterCopy wordt gebruikt om de filterwaarde op een andere gewenste plaats te krijgen.
  • Criteria: staat voor de criteria waarop de waarde zal worden gefilterd.
  • CopyToRange: is de plaats waar u uw filterresultaten opslaat.
  • Uniek: is een optioneel argument. Gebruik de Echt argument om alleen de unieke waarden te filteren. Anders wordt het standaard beschouwd als Valse .

In de onderstaande afbeelding is een voorbeeldgegevensset opgenomen om alle filters toe te passen die we willen uitvoeren.

1. VBA Advanced Filter toepassen voor de OF-criteria in een bereik in Excel

In de eerste methode passen we de OF criteria met behulp van de VBA geavanceerd filter Laten we zeggen dat we de gegevens willen filteren op de productnaam Cookies en Chocolade Om de OF criteria, moet u de waarde in verschillende rijen plaatsen. Volg de onderstaande stappen om de taak uit te voeren.

Stap 1:

  • Druk op Alt + F11 om de VBA-macro .
  • Klik op de Invoegen.
  • Kies de Module.

Stap 2:

  • Plak dan het volgende VBA code om de OF.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Declareer variabele voor datasetbereik en voor criteriabereik Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Stel de locatie en het bereik van het datasetbereik en het criteriabereik in Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Pas Advanced Filter toe om de dataset te filteren met behulp van de criteriaDataset_Rng.AdvancedFilter Actie:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Stap 3:

  • Sla dan het programma op en druk op F5 om te lopen.
  • Daarom krijgt u de gefilterde resultaten zoals in de onderstaande afbeelding.

Opmerkingen. Om het proces om te keren of alle filterpasta te verwijderen en de VBA programma.

 Sub Remove_All_Filter() On Error Resume Next 'opdracht om alle filters te verwijderen om de vorige dataset te tonen ActiveSheet.ShowAllData End Sub 

  • Daardoor krijgt u de vorige versie van uw gegevensreeks.

Lees meer: Excel VBA voorbeelden van geavanceerd filteren met criteria (6 criteria)

2. VBA Advanced Filter uitvoeren voor de EN-criteria in een bereik in Excel

Net als bij de vorige methode zullen we nu de VBA Geavanceerd filter voor de EN criteria. Laten we zeggen dat we de koekjes met de prijs van $0.65 zoals getoond in de onderstaande schermafbeelding. Voor het toepassen van de OF criteria, moet u de waarde in verschillende kolommen plaatsen. Om de EN criteria, volg de onderstaande instructies.

Stap 1:

  • Openen VBA-macro Druk op Alt + F11
  • Na het openen van de VBA-macro plak het volgende VBA codes in een nieuwe module.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Declareer variabele voor datasetbereik en voor criteriabereik Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Stel de locatie en het bereik van het datasetbereik en het criteriabereik in Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Pas Advanced Filter toe om de dataset te filteren met behulp van de criteriaDataset_Rng.AdvancedFilter Actie:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Stap 2:

  • Druk op F5 om het programma uit te voeren nadat u het hebt opgeslagen.
  • Krijg tenslotte de gefilterde resultaten.

Lees meer: VBA om gegevens te kopiëren naar een ander blad met geavanceerd filter in Excel

3. VBA Advanced Filter gebruiken voor de OF met EN-criteria in een bereik in Excel

U kunt ook de OF en de EN criteria beide in combinatie. U wilt bijvoorbeeld de waarden krijgen voor Cookies of Chocolade maar voor de Cookies, er is een andere criteria prijs $0.65 Volg de onderstaande procedures om dit voor elkaar te krijgen.

Stap 1:

  • Plak het volgende VBA codes na het openen van de VBA-macro .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Declareer variabele voor datasetbereik en voor criteriabereik Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Stel de locatie en het bereik van datasetbereik en criteriabereik in Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Pas Advanced Filter toe om de dataset te filteren met behulp van de criteriaDataset_Rng.AdvancedFilter Actie:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Stap 2:

  • Sla het programma dan eerst op door op F5 om het uit te voeren.
  • Bijgevolg vindt u de waarden met bepaalde EN en OF.

Lees meer: Geavanceerd filter toepassen op basis van meerdere criteria in één kolom in Excel

Vergelijkbare lezingen:

  • Geavanceerd filteren met meerdere criteria in Excel (15 geschikte voorbeelden)
  • Dynamisch geavanceerd filter Excel (VBA & Macro)
  • Het geavanceerde filter in VBA gebruiken (stap voor stap)
  • Geavanceerd filteren met criteriumbereik in Excel (18 toepassingen)
  • Excel geavanceerd filter werkt niet (2 redenen & oplossingen)

4. Gebruik VBA Advanced Filter voor unieke waarden met meerdere criteria in Excel

Bovendien, als u duplicaten heeft in uw gegevensverzameling, kunt u die verwijderen tijdens het filteren. We zullen de Uniek argument naar Echt om alleen de unieke waarden te krijgen en de duplicaten te verwijderen. Volg de beschreven instructies.

Stap 1:

  • Open eerst de VBA Macro door op Alt + F11.
  • Plak het volgende VBA codes in een nieuwe module.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Declareer variabele voor datasetbereik en voor criteriabereik Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Stel de locatie en het bereik van datasetbereik en criteriabereik in Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Pas Advanced Filter toe om de dataset te filteren met behulp van de criteriaDataset_Rng.AdvancedFilter Actie:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Uniek:=True Einde Sub 

Stap 2:

  • Druk vervolgens op F5 om het programma na het opslaan uit te voeren.
  • Daarom krijgt u alleen waarden voor de unieke.

Lees meer: Hoe gebruikt u een geavanceerd filter voor alleen unieke records in Excel?

5. VBA Advanced Filter uitvoeren voor voorwaardelijke gevallen

Naast de voorgaande methoden kunt u ook voorwaarden toepassen met formules. Bijvoorbeeld, we willen de Totale prijzen die groter zijn dan $100 Om het te bereiken, volg je gewoon de stappen.

Stap 1:

  • Ten eerste, om de VBA-macro Druk op Alt + F11 .
  • Selecteer een nieuwe Module en plak het volgende VBA-codes .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Declareer variabele voor datasetbereik en voor criteriabereik Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Stel de locatie en het bereik van datasetbereik en criteriabereik in Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Pas Advanced Filter toe om de dataset te filteren met behulp van de criteriaDataset_Rng.AdvancedFilter Actie:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Stap 2:

  • Sla vervolgens het programma op en druk op de F5 knop om de resultaten te zien.

Opmerkingen. Bovendien kunt u de resultaten in een gunstige ruimte krijgen, hetzij in een nieuw bereik of in een nieuw werkblad, door de xlFilterCopy actie. Plak gewoon de VBA codes en voer ze uit om de resultaten te krijgen in Sheet6 binnen bereik B4:E11 .

 'Declareer variabele voor datasetbereik en voor criteriabereik Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Stel de locatie en het bereik van datasetbereik en criteriabereik in Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Pas Advanced Filter toe om de dataset te filteren met behulp van de criteria Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub 

  • Zie bijgevolg het eindresultaat in een nieuw werkblad "Sheet6 .

Lees meer: Hoe gebruikt u een geavanceerd filter als het criteriabereik tekst bevat in Excel?

Conclusie

Samenvattend hoop ik dat u nu begrijpt hoe u de VBA geavanceerd filter in Excel om meerdere criteriabereiken te filteren. Al deze methoden moeten worden gebruikt om te leren en te oefenen met uw gegevens. Bekijk het praktijkboek en breng het geleerde in praktijk. Dankzij uw onmisbare steun zijn wij geïnspireerd om seminars als deze te blijven presenteren.

Als u vragen heeft, aarzel dan niet om contact met ons op te nemen. Laat ons weten wat u ervan vindt in het commentaarveld hieronder.

De Exceldemy zal het personeel uw vragen zo snel mogelijk beantwoorden.

Blijf bij ons en blijf leren.

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.