I VBA kan du lage Autofilter for å filtrere et celleområde eller en Excel -tabell. I denne opplæringen lærer du hvordan du lager Autofilter for en eller flere kolonner og for flere forhold.
Hvis du vil lære å bruke et avansert filter i VBA, klikker du her: VBA avansert filter
Opprette AutoFilter i VBA
Først vil du se hvordan du bare lager Autofilter i et område, slik at en bruker kan filtrere dataene. Dataene vi vil bruke i eksemplene er i Bilde 1:
Bilde 1. Data for AutoFilter -eksempler
Her er koden for å lage Autofilter:
1 | Ark1.Range ("A1: E1"). Autofilter |
For å aktivere Autofilter, må vi spesifisere toppteksten i området, i vårt tilfelle A1: E1, og bruke Autofilter objektets metode Område. Som et resultat har våre dataområder aktivert filtre:
Bilde 2. Autofilter aktivert for dataene
Autofilter med felt- og kriterieparametere
VBA lar deg også automatisk filtrere et bestemt felt med bestemte verdier.
For å gjøre dette må du bruke parametere Felt og Kriterier 1 av metoden Autofilter. I dette eksemplet vil vi filtrere den tredje kolonnen (Produkt) for Produkt A. kun. Her er koden:
12 | Ark1.Range ("A1: E1"). Autofilterfelt: = 3, _Kriterier1: = "Produkt A" |
I Felt parameter, kan du angi nummeret på kolonnen i området (ikke i Excel), mens du er i Kriterier 1 du kan sette verdien du vil filtrere. Etter å ha utført koden, ser tabellen vår slik ut:
Bilde 3. Autofilter med felt og kriterier
Som du kan se, bare rader med Produkt A. i den tredje kolonnen vises i dataområdet.
AutoFilter med verdier for felt og flere kriterier
Hvis du vil filtrere ett felt med flere verdier, må du bruke parameteren Operatør av Autofilter metode. For å filtrere flere verdier må du angi Operatør til xlFilterValues og også å sette alle verdiene til Kriterier i en matrise. I dette eksemplet 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 kjører koden, får vi bare rader med produkt A og produkt B, som du kan se på bilde 4:
Bilde 4. Autofilter med flere kriterier
AutoFilter Data Range med flere kriterier
Hvis du vil filtrere et felt med flere kriterier, må du bruke Kriterier 1 og Kriterier 2 parametere, men også Operatør xlAnd.
I det neste eksemplet filtrerer vi den første kolonnen (Dato) for datoer i desember 2022. Derfor har vi to kriterier: en dato større enn 12/01/18 og mindre enn 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 kjører koden, kan du se at bare datoer i desember vises i dataområdet:
Bilde 5. Autofilter med flere kriterier for feltet
Operatørparameterverdiene for AutoFilter -metoden
I tabellen ved siden av. du kan se alle mulige verdier av Operatør parameter for AutoFilter -metoden og beskrivelsene deres:
Operatør | Beskrivelse |
xlAnd | Inkluderer flere kriterier - Criteria1 og Criteria 2 |
xlOr | Inkluderer ett av flere kriterier - Criteria1 eller Criteria 2 |
xlTop10Items | Filtrerer et visst antall høyest rangerte verdier (antall spesifisert i kriterium1) |
xlBottom10Varer | Filtrerer et visst antall lavest rangerte verdier (antall spesifisert i kriterium1) |
xlTop10Prosent | Filtrerer en viss prosentandel av høyest rangerte verdier (% spesifisert i kriterium1) |
xlBottom10Prosent | Filtrerer en viss prosentandel av lavest rangerte verdier (% spesifisert i kriterium1) |
xlFilterValues | Inkluderer flere kriterier med Array |
xlFilterCellColor | Filtrerer celler for farger |
xlFilterFontColor | Filtrerer celler for skriftfarger |
xlFIlterIcon | Filtrer ikoner |
xlFilterDynamic | Filtrer dynamiske verdier |