Excel VBA: Avancerat filter med flera kriterier i ett intervall (5 metoder) -

  • Dela Detta
Hugh West

När du arbetar med stora mängder data och måste ställa in flera filter samtidigt, Avancerad filtrering Excel är till nytta. Det kan också användas för att rensa upp dina data genom att ta bort kopior. När du använder Avancerat filter , den VBA kod är mycket lättare att utföra. I den här handledningen visar vi hur man tillämpar VBA Avancerat filter för flera kriterier i Excel .

Ladda ner övningsboken

Ladda ner den här arbetsboken för att träna medan du läser den här artikeln.

VBA Avancerat filter.xlsm

5 effektiva metoder för VBA Advanced Filter med flera kriterier i ett intervall i Excel

I de följande avsnitten diskuterar vi följande 5 metoder att använda VBA Avancerat filter för flera kriterier. Till att börja med kan du behöva känna till syntaxen för VBA Avancerat filter .

VBA Avancerat filter Syntax:

  • Avancerat filter: hänvisar till ett intervallobjekt. Du kan ange det intervall där du vill tillämpa filtret.
  • Åtgärder: är ett obligatoriskt argument som har två alternativ, xlFilterInPlace eller . xlFilterCopy . xlFilterInPlace används för att filtrera värdet på den plats där datamängden finns. xlFilterCopy används för att få fram filtervärdet på en annan önskad plats.
  • Kriterieområde: representerar de kriterier som värdet ska filtreras efter.
  • CopyToRange: är den plats där du sparar dina filterresultat.
  • Unikt: är ett valfritt argument. Använd True argumentet för att endast filtrera de unika värdena. I annat fall betraktas det som standard som Falskt .

I bilden nedan visas ett exempel på en datamängd där du kan tillämpa alla de filter som vi vill använda.

1. Tillämpa VBA Advanced Filter för OR-kriterierna i ett intervall i Excel

I den första metoden tillämpar vi ELLER kriterier med hjälp av VBA Avancerat filter Låt oss säga att vi vill filtrera data efter produktnamnet. Cookies och Choklad För att tillämpa ELLER kriterier ska du placera värdet i olika rader. Följ de beskrivna stegen nedan för att utföra uppgiften.

Steg 1:

  • Tryck på Alt + F11 för att öppna VBA-makro .
  • Klicka på Infoga.
  • Välj den Modul.

Steg 2:

  • Klistra sedan in följande VBA kod för att tillämpa den OR.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Deklarera variabel för datauppsättningsintervallet och för kriterieintervallet Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ställ in platsen och intervallet för datauppsättningsintervallet och kriterieintervallet Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Tillämpa avancerat filter för att filtrera datauppsättningen med hjälp av kriteriernaDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Steg 3:

  • Spara sedan programmet och tryck på F5 att köra.
  • Därför får du filtrerade resultat som visas i bilden nedan.

Anteckningar. Om du vill vända processen eller ta bort all filterpasta och köra VBA program.

 Sub Remove_All_Filter() On Error Resume Next 'Kommando för att ta bort alla filter för att visa föregående dataset ActiveSheet.ShowAllData End Sub 

  • Som ett resultat får du den tidigare versionen av din datamängd.

Läs mer: Excel VBA-exempel på avancerade filter med kriterier (6 kriterier)

2. Utför VBA Advanced Filter för AND-kriterierna i ett intervall i Excel

På samma sätt som i den föregående metoden ska vi nu utföra VBA Avancerat filter för OCH Vi säger att vi vill veta vilka kakor som har priset på $0.65 som visas i skärmbilden nedan. För att tillämpa ELLER kriterierna bör du placera värdet i olika kolumner. Om du vill tillämpa OCH följa instruktionerna nedan.

Steg 1:

  • Öppna VBA-makro , tryck på Alt + F11
  • Efter att ha öppnat VBA-makro , klistra in följande VBA koder i en ny modul.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Deklarera variabel för datauppsättningsintervallet och för kriterieintervallet Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ställ in platsen och intervallet för datauppsättningsintervallet och kriterieintervallet Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Tillämpa avancerat filter för att filtrera datauppsättningen med hjälp av kriteriernaDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Steg 2:

  • Tryck på F5 för att köra programmet efter att du har sparat det.
  • Slutligen får du de filtrerade resultaten.

Läs mer: VBA för att kopiera data till ett annat ark med avancerat filter i Excel

3. Använd VBA Advanced Filter för OR med AND-kriterier i ett intervall i Excel

Du kan också tillämpa ELLER och OCH kriterier i kombination. Du vill till exempel få fram värdena för Cookies eller . Choklad , men för den Kakor, Det finns ett annat kriterium, nämligen priset. $0.65 Följ instruktionerna nedan för att få det gjort.

Steg 1:

  • Klistra in följande VBA koder efter att ha öppnat VBA-makro .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Deklarera Variabel för datauppsättningsintervallet och för kriterieintervallet Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ställ in platsen och intervallet för datauppsättningsintervallet och kriterieintervallet Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Tillämpa Advanced Filter för att filtrera datauppsättningen med hjälp av kriteriernaDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Steg 2:

  • Spara sedan programmet först genom att trycka på F5 för att köra den.
  • Följaktligen kommer du att hitta värden med vissa OCH och OR.

Läs mer: Tillämpa avancerade filter baserat på flera kriterier i en kolumn i Excel

Liknande läsningar:

  • Avancerat filter med flera kriterier i Excel (15 lämpliga exempel)
  • Dynamiskt avancerat filter i Excel (VBA & Macro)
  • Hur du använder det avancerade filtret i VBA (en steg-för-steg-guide)
  • Avancerat filter med kriterieområde i Excel (18 applikationer)
  • Excel Advanced Filter fungerar inte (2 orsaker & lösningar)

4. Använd VBA Advanced Filter för unika värden med flera kriterier i Excel

Om du dessutom har dubbletter i din datamängd kan du ta bort dem när du filtrerar. Vi kommer att lägga till Unik argument till True för att bara få fram de unika värdena och ta bort dubbletter. Följ de beskrivna instruktionerna.

Steg 1:

  • För det första öppnar du VBA Makro genom att trycka på Alt + F11.
  • Klistra in följande VBA koder i en ny modul.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Deklarera variabel för datauppsättningsintervallet och för kriterieintervallet Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ställ in platsen och intervallet för datauppsättningsintervallet och kriterieintervallet Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Tillämpa avancerat filter för att filtrera datasetet med hjälp av kriteriernaDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub 

Steg 2:

  • Tryck sedan på F5 för att köra programmet efter att du har sparat det.
  • Därför får du bara värden för de unika.

Läs mer: Hur du använder avancerade filter för unika poster i Excel

5. Utför VBA Avancerat filter för villkorligt fall

Förutom de tidigare metoderna kan du också tillämpa villkor med formler. Vi vill till exempel hitta Totala priser som är större än $100 För att göra det följer du bara stegen nedan.

Steg 1:

  • För det första, för att öppna VBA-makro , tryck på Alt + F11 .
  • Välj en ny Modul och klistra in följande VBA-koder .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Deklarera Variabel för datauppsättningsintervall och för kriterieintervall Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ställ in platsen och intervallet för datauppsättningsintervallet och kriterieintervallet Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Tillämpa Advanced Filter för att filtrera datauppsättningen med hjälp av kriteriernaDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Steg 2:

  • För det andra sparar du programmet och trycker på F5 för att se resultaten.

Anteckningar. Dessutom kan du få resultaten i ett gynnsamt utrymme, oavsett om det är i ett nytt intervall eller i ett nytt kalkylblad, genom att tillämpa xlFilterCopy handling. Klistra helt enkelt in VBA koder och kör dem för att få resultaten i Blad6 i intervallet B4:E11 .

 'Deklarera Variabel för datamängdsintervall och för kriterieintervall Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Ange plats och intervall för datamängdsintervall och kriterieintervall Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Tillämpa avancerat filter för att filtrera datamängden med hjälp av kriterierna Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub 

  • Se slutresultatet i ett nytt arbetsblad. 'Sheet6' .

Läs mer: Så här använder du avancerat filter om kriterieområdet innehåller text i Excel

Slutsats

För att sammanfatta hoppas jag att du nu förstår hur du ska använda VBA avancerat filter i Excel för att filtrera flera kriterieområden. Alla dessa metoder bör användas för att lära ut och öva med dina data. Titta igenom övningsboken och använd det du lärt dig. Tack vare ditt viktiga stöd kan vi fortsätta att presentera seminarier som detta.

Om du har några frågor, tveka inte att kontakta oss och låt oss veta vad du tycker i kommentarsfältet nedan.

Excellent personalen kommer att svara på dina frågor så snabbt som möjligt.

Stanna hos oss och lär dig hela tiden.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.