VBA AutoFilter

I VBA kan du oprette Autofilter for at filtrere en række celler eller en Excel -tabel. I denne vejledning lærer du, hvordan du opretter Autofilter for en eller flere kolonner og for flere betingelser.

Hvis du vil lære at bruge et avanceret filter i VBA, klik her: VBA avanceret filter

Oprettelse af AutoFilter i VBA

Først vil du se, hvordan du bare opretter Autofilter i et område, så en bruger kan filtrere dataene. De data, vi vil bruge i eksemplerne, er i billede 1:

Billede 1. Data til AutoFilter -eksempler

Her er koden til oprettelse Autofilter:

1 Ark1.Range ("A1: E1"). Autofilter

For at aktivere Autofilter, skal vi angive overskriften på intervallet, i vores tilfælde A1: E1, og bruge Autofilter objektets metode Rækkevidde. Som et resultat heraf har vores dataserie aktiveret filtre:

Billede 2. Autofilter aktiveret for dataene

Autofilter med felt- og kriterieparametre

VBA giver dig også mulighed for automatisk at filtrere et bestemt felt med bestemte værdier.

For at gøre dette skal du bruge parametre Mark og Kriterier 1 af metoden Autofilter. I dette eksempel vil vi filtrere den tredje kolonne (Produkt) til Produkt A kun. Her er koden:

12 Ark1.Range ("A1: E1"). Autofilterfelt: = 3, _Kriterier1: = "Produkt A"

I Mark parameter, kan du angive kolonnens nummer i intervallet (ikke i Excel), mens du er i Kriterier 1 du kan sætte den værdi, du vil filtrere. Efter udførelsen af ​​koden ser vores tabel sådan ud:

Billede 3. Autofilter med felt og kriterier

Som du kan se, er det kun rækker med Produkt A i den tredje kolonne vises i dataområdet.

Autofilter med felt- og flere kriterieværdier

Hvis du vil filtrere et felt med flere værdier, skal du bruge parameteren Operatør af Autofilter metode. For at filtrere flere værdier skal du indstille Operatør til xlFilterVærdier og også at sætte alle værdierne for Kriterier i et array. I dette eksempel filtrerer vi Produkt kolonne for Produkt A og Produkt B. Her er kodeeksemplet:

123 Ark1.Range ("A1: E1"). Autofilterfelt: = 3, _Kriterier1: = Array ("Produkt A", "Produkt B"), _Operatør: = xlFilterValues

Når vi eksekverer koden, får vi kun rækker med produkt A og produkt B, som du kan se på billede 4:

Billede 4. Autofilter med flere kriterieværdier

AutoFilter Data Range med flere kriterier

Hvis du vil filtrere et felt med flere kriterier, skal du bruge Kriterier 1 og Kriterier 2 parametre, men også Operatør xlAnd.

I det næste eksempel filtrerer vi den første kolonne (Dato) for datoer i december 2022. Derfor har vi to kriterier: en dato større end 12/01/18 og mindre end 31/12/18. Dette er koden:

1234 Ark1.Range ("A1: E1"). Autofilterfelt: = 1, _Kriterier1: = "> = 12/01/2018", _Operatør: = xlAnd, _Kriterier2: = "<= 31/12/2018"

Når vi udfører koden, kan du se, at kun datoer i december vises i dataområdet:

Billede 5. Autofilter med flere kriterier for feltet

Operatørparameterværdierne for AutoFilter -metoden

I den næste tabel. du kan se alle mulige værdier af Operatør parameter for AutoFilter -metoden og deres beskrivelser:

Operatør Beskrivelse
xlAnd Indeholder flere kriterier - Criteria1 og Criteria 2
xlOr Indeholder et af flere kriterier - Criteria1 eller Criteria 2
xlTop10Produkter Filtrerer et bestemt antal højest rangerede værdier (antal angivet i kriterium1)
xlBottom10Varer Filtrerer et bestemt antal lavest rangerede værdier (antal angivet i kriterium1)
xlTop10Procent Filtrerer en vis procentdel af de højest rangerede værdier (% angivet i kriterier1)
xlBottom10Procent Filtrerer en vis procentdel af de lavest rangerede værdier (% angivet i kriterier1)
xlFilterVærdier Inkluderer flere kriterieværdier med Array
xlFilterCellColor Filtrerer celler til farver
xlFilterFontColor Filtrerer celler til skrifttypefarver
xlFIlterIcon Filtrerer ikoner
xlFilterDynamic Filtrer dynamiske værdier

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave