Innehållsförteckning
Excel Kommando Sortera & Filtrera har en begränsad räckvidd till Filtrera data Men genom att använda VBA du kan Filtrera data i ett brett spektrum som du vill. I den här artikeln får du 8 användbara exempel som du kan använda VBA kod till Filtrera data i Excel med hjälp av VBA koder med levande illustrationer.
Ladda ner övningsboken
Du kan ladda ner den kostnadsfria Excel-mallen här och öva på egen hand.
VBA-kod för att filtrera data.xlsm8 exempel på hur du använder VBA-kod för att filtrera data i Excel
Låt oss först presentera vårt dataset, som representerar några studenternas kön, status och ålder .
1. Använd VBA-kod för att filtrera data baserat på ett textkriterium i Excel
I vårt allra första exempel använder vi följande VBA till Filter endast Man studenter från Genus kolumnen i datamängden.
Steg:
- Högerklicka på på den titel på bladet .
- Därefter välj Visa kod från Kontextmeny .
Strax därefter kom en VBA öppnas.
- Typ följande koder i-
Sub Filter_Data_Text() Arbetsblad("Textkriterier").Range("B4").AutoFilter Field:=2, Criteria1:="Male" End Sub
- Senare minimerar du VBA
Uppdelning av koden
- Här har jag skapat en Under förfarande, Filter_Data_Text() .
- Därefter användes Utbud för att deklarera våra respektive namn på bladet och sortiment
- Därefter använde jag metoden AutoFilter för att använda Kriterier av mitt eget val, där Fält:=2 betyder kolumn 2 . och Kriterier1:="Man" till Filter uppgifter för Man.
- Därefter kan du öppna Dialogrutan Makroer , Klicka på på följande sätt: Utvecklare> Makros.
- Välj Makronamn som nämns i koder .
- Slutligen, bara Tryck på Kör .
Nu kan du se att vi bara har fått Uppgifter om manliga studenter efter Filtrering .
Läs mer: Excel filtrera data baserat på cellvärde (6 effektiva sätt)
2. Använd VBA-kod för att filtrera data med flera kriterier i en kolumn
Här kommer vi att Filter för flera kriterier i en kolumn. Från kolumn nummer tre i datasetet ska vi Filter för Examensarbete och Forskarutbildning studenter.
Steg:
- Följ de två första stegen av den första exemplet för att öppna VBA-fönster .
- Senare, typ följande koder i-
Sub Filter_One_Column() Arbetsblad("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub
- Minimera sedan VBA
Uppdelning av koden
- Här har jag skapat en Under förfarande, Filter_One_Column() .
- Därefter användes Utbud för att deklarera våra respektive namn på bladet och sortiment
- Därefter använde jag metoden AutoFilter för att använda Kriterier av mitt eget val, där Fält:=3 betyder kolumn 3 . Här, Kriterier1:="Graduate" och Kriterier2:="Postgraduate" till Filter den studerandes Status .
- Slutligen använde jag Operatör:=xlOr för att tillämpa ELLER villkor Filter för flera kriterier.
- I detta ögonblick, följa Tredje steget. från första exemplet för att öppna Dialogrutan för makron box .
- Senare, Välj den angivna Makronamn och Tryck på Kör .
Strax därefter får du filtrerade rader baserade på flera kriterier som i bilden nedan.
Läs mer: Filtrera flera kriterier i Excel (4 lämpliga sätt)
3. Använd VBA-kod för att filtrera data med flera kriterier i olika kolumner i Excel
Nu ska vi Filter för flera kriterier. Man och Examensarbete studenter.
Steg:
- Följ de två första stegen av den första exemplet för att öppna VBA
- Senare, skriv till följande koder i-
Sub Filter_Different_Columns() Med arbetsblad("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub
- Därefter minimera VBA-fönstret .
Uppdelning av koden
- Här har jag skapat en Under förfarande, Filter_Different_Columns() .
- Sedan använde jag Med uttalande för att använda Flera kolumner .
- Därefter användes Utbud för att deklarera våra respektive namn på bladet och sortiment
- Därefter använde jag metoden AutoFilter för att använda Kriterier av mitt eget val, där Fält:=2 betyder kolumn 2 och Fält:=3 betyder kolumn 3 .
- Här har man valt ut Kriterier1:="Man" för Genus kolumnen och Kriterier1:="Graduate" för Status kolumnen till Filter uppgifter från olika kolumner .
- Därefter följa det tredje steget från första exemplet för att öppna Dialogrutan Makroer .
- Senare, Välj den angivna Makronamn och Tryck på Kör .
Här är resultatet av de flera kriterierna.
Läs mer: Excel VBA för att filtrera i samma kolumn med flera kriterier (6 exempel)
4. Använd VBA-kod för att filtrera de tre första punkterna i Excel
I det här exemplet filtrerar vi de tre bästa studenterna i enlighet med deras ålder .
Steg:
- Följ de två första stegen av den första exemplet för att öppna VBA-fönster .
- Därefter typ följande koder i-
Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub
- Därefter minimerar du VBA-fönster .
Uppdelning av koden
- Här har jag skapat en Under förfarande, Filter_Top3_Items() .
- Och sedan användes Operatör:=xlTop10Items till Filter för de tre främsta uppgifter .
- Nu följa det tredje steget från första exemplet för att öppna Dialogrutan för makron box .
- Därefter Välj makronamnet. som nämns i koderna och Tryck på Kör .
Då får du ett utdata som bilden nedan.
Läs mer: Hur man filtrerar baserat på cellvärde med Excel VBA (4 metoder)
Liknande läsningar
- Hur man kopierar och klistrar in när ett filter används i Excel
- Filtrera unika värden i Excel (8 enkla sätt)
- Filtrera flera kriterier i Excel med VBA (både AND och OR)
- Hur man använder textfilter i Excel (5 exempel)
- Filtrera efter datum i Excel (4 snabba metoder)
5. Använd VBA-kod för att filtrera de 50 bästa procenten i Excel
Låt oss använda VBA koder för att filtrera de femtio procenten högst av studenter baserat på deras ålder .
Steg:
- Först, Följ de två första stegen av den första exemplet för att öppna VBA-fönster .
- Senare, typ följande koder i-
Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="50", Operator:=xlTop10Percent End Sub
- Minimera VBA-fönster .
Uppdelning av koden
- Här har jag skapat en Under förfarande, Filter_Top50_Percent() .
- Senare användes Operatör:=xlTop10Percent till Filtrera de femtio procenten från kolumn-4 .
- I detta ögonblick, följa det tredje steget från första exemplet för att öppna Dialogrutan Makroer.
- Därefter Välj den angivna Makronamn och Tryck på Kör .
Det fanns sammanlagt 7 studenter så för 50 procent , den visar ungefär tre studenter .
Läs mer: Hur man använder vinstprocentformeln i Excel (3 exempel)
6. Tillämpa VBA-kod för att filtrera data med hjälp av wildcard
Vi kan använda Jokertecken-* (asterisk) på VBA-koder för att filtrera data i Excel. Statuskolumn , vi filtrerar endast den värden som innehåller "Post". .
Steg:
- Följ de två första stegen av den första exemplet för att öppna VBA-fönster .
- Därefter skriv till följande koder i-
Sub Filter_with_Wildcard(() ActiveSheet.Range("B4").AutoFilter Field:=3, Criteria1:="*Post*" End Sub
- Senare minimerar du den VBA-fönster .
Uppdelning av koden
- Här har jag skapat en Under förfarande, Filter_med_Wildcard() .
- Därefter användes Utbud ("B4") för att ställa in intervallet.
- Nästa , begagnad AutoFilter till Filter på Fält:=3 betyder kolumn 3.
- Kriterier1:="*Post*" till Filter de värden som innehåller "Post".
- Nu följa det tredje steget från första exemplet för att öppna Dialogrutan Makroer.
- Välj den angivna Makronamn och Tryck på Kör .
Då får du det önskade resultatet.
Läs mer: Hur man lägger till filter i Excel (4 metoder)
7. Bädda in Excel VBA för att kopiera filtrerade data i ett nytt ark i Excel
Se att det finns några filtrerade data i mitt dataset. Nu kopierar jag dem till ett nytt ark med hjälp av VBA . Dessa koder kommer inte att fungera korrekt i bladet, utan du måste tillämpa dem i modulen.
Steg:
- Tryck på Alt+F11 för att öppna VBA
- Klicka sedan på Infoga> Modul till öppna en modul .
- Nu skriv till följande koder -
Sub Copy_Filtered_Data_NewSheet() Dim xRng As Range Dim xWS As Worksheet If Worksheets("Copy Filtered Data").AutoFilterMode = False Then MsgBox "Noo filtered data" Exit Sub End If Set xRng = Worksheets("Copy Filtered Data").AutoFilter.Range Set xWS = Worksheets.Add xRng.Copy Range("G4") End Sub
- Minimera sedan VBA
Uppdelning av koden
- Här har jag skapat en Under förfarande, Kopiera_filtrerade_data_Nytt blad() .
- Efter detta deklareras två variabler- x Rng Som intervall och xWS Som arbetsblad.
- Därefter användes en IF-meddelande för att kontrollera Filtrerad
- Senare användes MsgBox för att visa resultatet.
- Därefter användes Arbetsblad("Kopiera filtrerade data").AutoFilter.Range för att välja den Filtrerad och används. Lägg till för att lägga till ett nytt blad.
- Slutligen, Kopiera Range("G4") kommer att kopiera den Filtrerad uppgifter till den nytt blad .
- Senare, följa det tredje steget från första exemplet för att öppna Dialogrutan Makroer .
- Därefter Välj den angivna Makronamn och Tryck på Kör .
Se nu att Excel har öppnat ett nytt ark och kopierat de filtrerade raderna.
Läs mer: Genväg för Excel-filter (3 snabba användningsområden med exempel)
8. Tillämpa VBA-kod för att filtrera data med hjälp av listrutan
I vårt sista exempel gör vi först en rullgardinslista för kön och sedan använder vi den för att filtrera data. För det har jag placerat könskriterierna på en annan plats och vi gör en rullgardinslista i Cell D14 .
Steg:
- Välj Cell D14 .
- Därefter Klicka på på följande sätt: Data> Dataverktyg> Datavalidering> Datavalidering.
Strax därefter kom en dialogruta kommer att öppnas.
Välj en lista från Tillåt rullgardinsmeny .
Därefter Klicka på ikonen Öppna från Källbox .
Nu välja ett kriterieområde och Tryck på Enter-knappen. .
- I detta ögonblick är det bara Tryck på OK .
Nu har vår drop-down listan är klar.
- Nu Följ de två första stegen av den första exemplet för att öppna VBA-fönster .
- Därefter skriv till följande koder i-
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$14" Then If Range("D14") = "All" Then Range("B4").AutoFilter Else Range("B4").AutoFilter Field:=2, Criteria1:=Range("D14") End If End If End Sub
- Därefter minimera VBA-fönstret .
Uppdelning av koden
- Här har jag skapat en Privat underleverantör förfarande, Worksheet_Change(ByVal Target As Range).
- Sedan valde jag Arbetsblad från Allmänt och Ändra från Deklarationer .
- Ställ sedan in Adress för att veta var den finns.
- Slutligen, inom IF uttalande använde sig av den AutoFilter metod med Fält och Kriterier
- Nu bara välja kriterier från rullgardinslistan och Filtret aktiveras .
Här är den Filtrerad efter att ha valt Man från drop-down .
Läs mer: Filtrera efter lista i ett annat ark i Excel (2 metoder)
Övningssektionen
Du får ett övningsblad i Excel-filen ovan för att öva på de förklarade metoderna.
Slutsats
Jag hoppas att de förfaranden som beskrivs ovan kommer att vara tillräckligt bra för att kunna användas. VBA kod till Filter Du får gärna ställa frågor i kommentarsfältet och ge mig feedback.