Indholdsfortegnelse
Gennemførelse af VBA-makro er den mest effektive, hurtigste og sikreste metode til at udføre enhver operation i Excel. I denne artikel vil vi vise dig, hvordan du kan sortere tabellen i Excel med VBA .
Download arbejdsbog
Du kan downloade den gratis Excel-arbejdsbog til øvelser her.
Sortere tabel med VBA.xlsm
Ting, du skal vide, før du implementerer VBA til at sortere en tabel i Excel
Der er nogle parametre, som du ofte skal bruge, når du arbejder med Sortere metode til VBA Så her vil vi diskutere nogle af parametrene for at gøre dig fortrolig, mens du skriver koden.
Parameter | Krævet/ valgfri | Datatype | Beskrivelse |
---|---|---|---|
Nøgle | Valgfrit | Variant | Angiver det område eller den kolonne, hvis værdier skal sorteres. |
Bestil | Valgfrit | XlSortOrder | Angiver den rækkefølge, som sorteringen skal udføres i.
|
Overskrift | Valgfrit | XlYesNoGuess | Angiver, om den første række indeholder overskrifter eller ej.
|
4 metoder til implementering af VBA til sortering af tabel i Excel
Dette afsnit viser dig, hvordan du kan sortere Excel-tabeller ved at overveje værdi, farver, ikoner og flere kolonner med VBA kode.
1. Embed VBA til at sortere tabel efter værdi i Excel
I det følgende eksempel vil vi sortere denne tabel efter værdierne der er til stede i den Mark kolonnen i faldende rækkefølge.
Trin:
- Tryk på Alt + F11 på dit tastatur eller gå til fanen Udvikler -> Visual Basic for at åbne Visual Basic-editor .
- I pop-up kodevinduet skal du på menulinjen klikke på Indsæt -> Modul .
- Kopier følgende kode, og indsæt den i kodevinduet.
Sub SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub
Din kode er nu klar til at køre.
Her,
- SortTBL → Angav tabellens navn.
- SortTBL[mærker] -> Angav kolonnenavnet for den tabel, der skal sorteres.
- Key1:=iColumn → Angiv kolonneområdet for at lade koden vide, hvilken kolonne i tabellen der skal sorteres.
- Order1:=xlDescending → Angav ordren som xlDescending for at sortere kolonnen i faldende rækkefølge. Hvis du vil sortere kolonnen i stigende rækkefølge, skal du skrive xlAscending i stedet.
- Overskrift:= xlYes → Da kolonnen i denne tabel har en overskrift, har vi angivet den med xlJa mulighed.
- Tryk på F5 på dit tastatur eller på menulinjen vælge Kør -> Kør Sub/UserForm Du kan også bare klikke på lille Play-ikon i undermenulinjen for at køre makroen.
Du vil se, at kolonnen i din tabel nu er sorteret i faldende rækkefølge .
Læs mere: Sådan sorterer du data efter værdi i Excel (5 nemme metoder)
2. Indsæt VBA-makro til sortering af tabel for flere kolonner
Du kan også sortere en tabel for flere kolonner i Excel med VBA makro.
Ud fra ovenstående tabel sorterer vi kolonnerne Navn og Afdeling i stigende rækkefølge.
Trin:
- På samme måde som før, åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
- Kopier følgende kode i kodevinduet, og indsæt den.
Sub SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Department]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub
Din kode er nu klar til at køre.
Her,
- TableValue → Angav tabellens navn.
- TableValue[Navn] -> Angav det første kolonnenavn i den tabel, der skal sorteres.
- TableValue[Afdeling] -> Angav det andet kolonnenavn for den tabel, der skal sorteres.
- Key1:=iColumn1 → Angiv kolonneområdet for at lade koden vide, at den første kolonne i tabellen skal sorteres.
- Key1:=iKolonne2 → Angiv kolonneområdet for at lade koden vide, at den anden kolonne i tabellen skal sorteres.
- Order1:=xlAscending → Angav ordren som xlAscending for at sortere kolonnen i faldende rækkefølge. Hvis du ønsker at sortere kolonnen i faldende rækkefølge, skal du skrive xlDescending i stedet.
- Overskrift:= xlYes → Da kolonnerne i denne tabel har overskrifter, har vi angivet den med xlJa mulighed.
- Kør denne kode, og du vil få begge de kolonnerne i tabellen sorteret i stigende rækkefølge.
Læs mere: Sådan sorterer du automatisk flere kolonner i Excel (3 måder)
Lignende læsninger
- Sådan sorteres unik liste i Excel (10 nyttige metoder)
- Sortering af array med Excel VBA (både stigende og faldende rækkefølge)
- Sådan sorterer og filtrerer du data i Excel (en komplet vejledning)
- Automatisk sortering i Excel, når data ændres (9 eksempler)
- Tilfældig sortering i Excel (formler + VBA)
3. Implementer makro til at sortere tabel efter cellefarve i Excel
Du kan også sortere en tabel efter cellens farve som den indeholder.
Med ovenstående tabel som eksempel vil vi vise dig, hvordan du kan sortere den på baggrund af de farver, som tabellen indeholder.
Trin:
- Som tidligere vist, er åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
- Kopier følgende kode i kodevinduet, og indsæt den.
Sub SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor) .SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(255, 217, 102) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180, 198, 231) .Header = xlYes .Apply End With End Sub
Din kode er nu klar til at køre.
Her er det RGB koder, som vi har leveret, kan du finde den eller andre RGB kode, som du ønsker, ved at følge nedenstående gif.
- Du skal blot klikke på farvet celle .
- I den Hjem klikker du på fanen pil ved siden af Fill Color og vælg derefter Flere farver . du vil se den RGB koder i den Tilpasset fanen i den viste Farver popup-boks.
- Kør denne kode, og din tabel vil være sorteret på grundlag af farverne .
Læs mere: Sådan sorteres efter farve i Excel (4 kriterier)
4. Anvend VBA til at sortere Excel-tabellen efter ikon
Lad os antage, at tabellen i datasættet har ikoner for at gøre den mere overskuelig. Du kan sortere tabel baseret på ikonerne i Excel med VBA makro.
Se på ovenstående datasæt. Her har tabellen ikoner ved siden af talværdierne i Marks kolonner, så vi kan forstå, hvilken elev der har gode, dårlige eller gennemsnitlige resultater.
Bemærk, at hvis du ikke ved, hvordan du kan indsætte et ikon i en celle, kan du blot gøre det med Betinget formatering funktion i Excel.
- Vælg hele området eller kolonnen.
- Gå til Betinget formatering -> Ikonesæt Vælg derefter de ikon-sæt, du ønsker, fra indstillingen.
Trin til sortere en tabel baseret på ikoner er angivet nedenfor.
Trin:
- Åbn Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
- Kopier følgende kode i kodevinduet, og indsæt den.
Sub SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(2) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(4) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub
Din kode er nu klar til at køre.
Her,
- xl5Pile -> Vi har valgt den sæt med 5 pile fra indstillingen i Betinget formatering .
- Vare (1) -> Specificeret den første type af pilikon.
- Vare (2) -> Specificeret den anden type af pilikon.
- Artikel (3) -> Specificeret den tredje type af pilikon.
- Vare (4) -> Specificeret den fjerde type af pilikon.
- Vare (5) -> Specificeret den femte type af pilikon.
- Kør denne kode, og tabellen vil blive sorteret på baggrund af ikonerne .
Læs mere: Sådan sorterer du automatisk en tabel i Excel (5 metoder)
Konklusion
Denne artikel viste dig, hvordan du kan sortere tabellen i Excel VBA Jeg håber, at denne artikel har været til stor gavn for dig. Du er velkommen til at spørge, hvis du har spørgsmål til emnet.