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 |