VBA Exceli tabeli sorteerimiseks (4 meetodit)

  • Jaga Seda
Hugh West

Rakendamine VBA makro on kõige tõhusam, kiirem ja turvalisem meetod mis tahes toimingute teostamiseks Excelis. Selles artiklis näitame teile, kuidas teha sorteerida tabelit Excelis koos VBA .

Lae alla töövihik

Tasuta Exceli harjutusvihiku saate alla laadida siit.

Sorteerida tabelit VBA.xlsm abil

Asjad, mida tuleb teada enne VBA rakendamist Exceli tabeli sorteerimiseks

On mõned parameetrid, mida tuleb sageli kasutada, kui te töötate programmiga Sorteeri meetod VBA Nii et siinkohal arutame mõningaid parameetreid, et te oleksite koodi kirjutamise ajal tuttavlikumad.

Parameeter Kohustuslik/ vabatahtlik Andmete tüüp Kirjeldus
Key Valikuline Variant Määrab vahemiku või veeru, mille väärtused sorteeritakse.
Tellige Valikuline XlSortOrder Määrab järjestuse, milles sorteerimine toimub.
  • xlAscending = Sorteerimine kasvavas järjekorras.
  • xlDescending = Sorteerimine kahanevas järjekorras.
Pealkiri Valikuline XlYesNoGuess Määrab, kas esimene rida sisaldab päiseid või mitte.
  • xlNo = Kui veerus ei ole päiseid; Vaikeväärtus.
  • xlYes = Kui veergudel on pealkirjad.
  • xlGuess = Laske Excelil määrata päised.

4 meetodit VBA rakendamisel Exceli tabeli sorteerimiseks

Selles jaotises näidatakse, kuidas sorteerida Exceli tabelid võttes arvesse väärtus, värvid, ikoonid ja mitu veergu koos VBA kood.

1. Embed VBA, et sorteerida tabelit väärtuse järgi Excelis

Võttes arvesse järgmist näidet, siis sorteerida see tabel väärtuste järgi olemas Mark veerus kahanevas järjekorras.

Sammud:

  • Press Alt + F11 klaviatuuril või mine vahekaardile Arendaja -> Visual Basic avada Visual Basic toimetaja .

  • Avakuva koodiaknas klõpsake menüüribal nuppu Insert -> Moodul .

  • Kopeeri järgmine kood ja kleebi see koodiaknasse.
 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 

Teie kood on nüüd valmis käivitamiseks.

Siin,

  • SortTBL → Määratud tabeli nimi.
  • SortTBL[Märks] -> Määratud tabeli veeru nimi, mida sorteerida.
  • Key1:=iColumn → Määrake veergude vahemik, et kood teaks, millist tabeli veergu sorteerida.
  • Order1:=xlDescending → Määratletud tellimus kui xlDescending et sorteerida veergu kahanevas järjekorras. Kui soovite sorteerida veergu kasvavas järjekorras, siis kirjutage xlAscending selle asemel.
  • Pealkiri:= xlYes → Kuna selle tabeli veerul on pealkiri, siis määrasime selle koos märgiga xlYes võimalus.

  • Press F5 klaviatuuril või valige menüüribalt Run -> Run Sub/UserFormi käivitamine Võite ka lihtsalt klõpsata väike Play ikoon allmenüüribal makro käivitamiseks.

Näete, et teie tabeli veerg on nüüd järgmine sorteeritud kahanevas järjekorras .

Loe lisaks: Kuidas sorteerida andmeid väärtuse järgi Excelis (5 lihtsat meetodit)

2. VBA makro sisestamine tabeli sorteerimiseks mitme veeru jaoks

Võite ka sorteerida tabelit mitme veeru jaoks Excelis koos VBA makro.

Ülaltoodud tabelist sorteerime veergusid Nimi ja Osakond kasvavas järjekorras.

Sammud:

  • Samamoodi nagu varem, avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Kopeerige koodiaknas järgmine kood ja kleepige see sisse.
 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 

Teie kood on nüüd valmis käivitamiseks.

Siin,

  • TableValue → Määratud tabeli nimi.
  • TableValue[nimi] -> Määratud tabeli esimese veeru nimi, mida sorteerida.
  • TableValue[osakond] -> Määratud tabeli teise veeru nimi, mida sorteerida.
  • Key1:=iColumn1 → Määrake veergude vahemik, et kood teaks, et tabeli esimene veerg tuleb sorteerida.
  • Key1:=iColumn2 → Määrake veergude vahemik, et kood teaks, et tabeli teine veerg tuleb sorteerida.
  • Order1:=xlAscending → Määratletud tellimus kui xlAscending et sorteerida veergu kahanevas järjekorras. Kui soovite sorteerida veergu kahanevas järjekorras, siis kirjutage xlDescending selle asemel.
  • Pealkiri:= xlYes → Kuna selle tabeli veergudel on pealkirjad, siis määrasime selle koos märgiga xlYes võimalus.

  • Käivita seda koodi ja saate mõlemad tabeli veerud sorteeritud kasvavas järjekorras.

Loe edasi: Kuidas automaatselt sorteerida mitu veergu Excelis (3 võimalust)

Sarnased lugemised

  • Kuidas sorteerida unikaalset nimekirja Excelis (10 kasulikku meetodit)
  • Sort Array Excel VBA-ga (nii kasvav kui ka kahanev järjekord)
  • Kuidas sorteerida ja filtreerida andmeid Excelis (täielik juhend)
  • Exceli automaatne sorteerimine andmete muutumisel (9 näidet)
  • Juhuslik sorteerimine Excelis (valemid + VBA)

3. Rakenda makro Exceli tabeli sorteerimiseks lahtri värvi järgi

Võite ka sorteerida tabelit lahtri värvi järgi mida see sisaldab.

Näitena kasutame ülaltoodud tabelit ja näitame teile, kuidas seda sorteerida selles tabelis olevate värvide alusel.

Sammud:

  • Nagu eelnevalt näidatud, avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Kopeerige koodiaknas järgmine kood ja kleepige see sisse.
 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 

Teie kood on nüüd valmis käivitamiseks.

Siin on RGB koodid, mida me pakkusime, leiad selle või mõne muu RGB koodi, mida soovite, järgides allpool toodud gif.

  • Lihtsalt klõpsake värviline lahter .
  • In the Kodu klõpsake vahekaardil nool täitevärvi kõrval seejärel valige Rohkem värve Te näete RGB koodid Kohandatud vahekaart ilmus Värvid hüpikaken.

  • Käivita see kood ja teie tabel on sorteeritud värvide alusel .

Loe edasi: Kuidas sorteerida värvi järgi Excelis (4 kriteeriumi)

4. Rakendage VBA-d Exceli tabeli sorteerimiseks ikooni järgi

Oletame, et andmekogumi tabelis on parema loetavuse huvides ikoonid. Saate sorteerida tabel, mis põhineb ikoonidel Excelis koos VBA makro.

Vaadake ülaltoodud andmestikku. Siin on tabelis numbrite väärtuste kõrval ikoonid, mis asuvad Marks veerud, et me saaksime aru, millise õpilase tulemused on head, halvad või keskmised.

Pange tähele, et kui te ei tea, kuidas saab ikooni sisestada lahtri sisse, saate seda lihtsalt teha käsuga Tingimuslik vormindamine funktsioon Excelis.

  • Valige kogu vahemik või veerg.
  • Mine edasi Tingimuslik vormindamine -> Ikoonikomplektid . Seejärel valige valikust mis tahes ikoonikomplektid, mida soovite.

Sammud sorteerida tabelit ikoonide alusel on esitatud allpool.

Sammud:

  • Avatud Visual Basic toimetaja alates Arendaja vahekaart ja Sisesta a Moodul koodiaknas.
  • Kopeerige koodiaknas järgmine kood ja kleepige see sisse.
 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 

Teie kood on nüüd valmis käivitamiseks.

Siin,

  • xl5Nooled -> Me valisime 5 noolest koosnev komplekt valikust Tingimuslik vormindamine .
  • Objekt (1) -> Täpsustatud esimene noole ikooni tüüp.
  • Punkt (2) -> Täpsustatud teine noole ikooni tüüp.
  • Punkt (3) -> Täpsustatud kolmas noole ikooni tüüp.
  • Punkt (4) -> Täpsustatud neljas noole ikooni tüüp.
  • Punkt (5) -> Täpsustatud viies noole ikooni tüüp.

  • Käivita see kood ja tabel on sorteeritud ikoonide alusel .

Loe lisaks: Kuidas Exceli tabelit automaatselt sorteerida (5 meetodit)

Kokkuvõte

See artikkel näitas teile, kuidas sorteerida tabelit Excelis VBA . ma loodan, et see artikkel oli teile väga kasulik. Küsige julgelt, kui teil on küsimusi selle teema kohta.

Hugh West on suurte kogemustega Exceli koolitaja ja analüütik, kellel on selles valdkonnas üle 10-aastane kogemus. Tal on raamatupidamise ja rahanduse bakalaureusekraad ning ärijuhtimise magistrikraad. Hugh’l on kirg õpetamise vastu ning ta on välja töötanud ainulaadse õpetamisviisi, mida on lihtne järgida ja mõista. Tema Exceli ekspertteadmised on aidanud tuhandetel õpilastel ja spetsialistidel üle maailma oma oskusi parandada ja karjääris silma paista. Oma ajaveebi kaudu jagab Hugh oma teadmisi maailmaga, pakkudes tasuta Exceli õpetusi ja veebikoolitusi, mis aitavad üksikisikutel ja ettevõtetel oma potentsiaali täielikult ära kasutada.