VBA AutoFilter

I VBA kan du skapa Autofilter för att filtrera ett cellintervall eller en Excel -tabell. I den här självstudien lär du dig hur du skapar Autofilter för en eller flera kolumner och för flera villkor.

Om du vill lära dig hur du använder ett avancerat filter i VBA, klicka här: VBA avancerat filter

Skapa AutoFilter i VBA

Först kommer du att se hur du bara skapar Autofilter inom ett intervall, så att en användare kan filtrera data. Data som vi kommer att använda i exemplen finns i bild 1:

Bild 1. Data för AutoFilter -exempel

Här är koden för att skapa Autofilter:

1 Sheet1.Range ("A1: E1"). AutoFilter

För att aktivera Autofilter, måste vi ange rubriken för intervallet, i vårt fall A1: E1, och använda Autofilter objektets metod Räckvidd. Som ett resultat har våra dataintervall aktiverat filter:

Bild 2. Autofilter aktiverat för data

Autofilter med fält- och kriterieparametrar

VBA låter dig också automatiskt filtrera ett visst fält med vissa värden.

För att göra detta måste du använda parametrar Fält och Kriterier 1 av metoden Autofilter. I det här exemplet vill vi filtrera den tredje kolumnen (Produkt) för Produkt A endast. Här är koden:

12 Sheet1.Range ("A1: E1"). Autofilterfält: = 3, _Kriterier1: = "Produkt A"

I Fält parameter kan du ställa in kolumnens nummer i intervallet (inte i Excel), medan i Kriterier 1 du kan ange värdet som du vill filtrera. Efter att koden har körts ser vår tabell ut så här:

Bild 3. Autofilter med fält och kriterier

Som du kan se är det bara rader med Produkt A i den tredje kolumnen visas i dataområdet.

Autofilter med fält- och flera kriterier

Om du vill filtrera ett fält med flera värden måste du använda parametern Operatör av Autofilter metod. För att filtrera flera värden måste du ange Operatör till xlFilterValues och också att sätta alla värden på Kriterier i en matris. I det här exemplet filtrerar vi Produkt kolumn för Produkt A och Produkt B. Här är koden exempel:

123 Sheet1.Range ("A1: E1"). Autofilterfält: = 3, _Kriterier1: = Array ("Produkt A", "Produkt B"), _Operatör: = xlFilterValues

När vi kör koden får vi bara rader med produkt A och produkt B, som du kan se i bild 4:

Bild 4. Autofilter med flera kriterier

AutoFilter Data Range med flera kriterier

Om du vill filtrera ett fält med flera kriterier måste du använda det Kriterier 1 och Kriterier2 parametrar, men också Operatör xlAnd.

I nästa exempel filtrerar vi den första kolumnen (Datum) för datum i december 2022. Därför har vi två kriterier: ett datum större än 12/01/18 och mindre än 31/12/18. Detta är koden:

1234 Sheet1.Range ("A1: E1"). Autofilterfält: = 1, _Kriterier1: = "> = 12/01/2018", _Operatör: = xlAnd, _Kriterier2: = "<= 31/12/2018"

När vi kör koden kan du se att endast datum i december visas i dataområdet:

Bild 5. Autofilter med flera kriterier för fältet

Operatörsparametervärden för AutoFilter -metoden

I nästa tabell. du kan se alla möjliga värden för Operatör parameter för AutoFilter -metoden och deras beskrivningar:

Operatör Beskrivning
xlOch Inkluderar flera kriterier - Kriterier1 och Kriterier 2
xlOr Inkluderar ett av flera kriterier - Criteria1 eller Criteria 2
xlTop10Produkter Filtrerar ett visst antal högst rankade värden (antal som anges i kriterier1)
xlBottom10Produkter Filtrerar ett visst antal lägst rankade värden (antal som anges i kriterier1)
xlTop10Procent Filtrerar en viss procent av högst rankade värden (% specificerat i kriterier1)
xlBottom10Procent Filtrerar en viss procent av lägst rankade värden (% specificerat i kriterier1)
xlFilterValues Inkluderar flera kriterier med Array
xlFilterCellColor Filtrerar celler för färger
xlFilterFontColor Filtrerar celler för teckensnittsfärger
xlFIlterIcon Filtrerar ikoner
xlFilterDynamic Filtrera dynamiska värden

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave