VBA za razvrščanje tabele v Excelu (4 metode)

  • Deliti To
Hugh West

Izvajanje Makro VBA je najučinkovitejša, najhitrejša in najvarnejša metoda za izvajanje vseh operacij v Excelu. V tem članku vam bomo pokazali, kako razvrstite tabelo v Excelu z VBA .

Prenos delovnega zvezka

Brezplačni delovni zvezek Excel lahko prenesete s tega mesta.

Razvrstitev tabele z VBA.xlsm

Stvari, ki jih je treba poznati pred izvajanjem VBA za razvrščanje tabele v Excelu

Obstaja nekaj parametrov, ki jih je treba pogosto uporabljati pri delu z Razvrsti metoda VBA . Zato bomo tukaj obravnavali nekatere parametre, da se boste z njimi seznanili med pisanjem kode.

Parameter Obvezno/izbirno Vrsta podatkov Opis
Ključ Izbirno Varianta Določa območje ali stolpec, katerega vrednosti je treba razvrstiti.
Naročilo Izbirno XlSortOrder Določa vrstni red razvrščanja.
  • xlVzpenjajoče se = razvrščanje v naraščajočem vrstnem redu.
  • xlSpadajoče = razvrščanje v padajočem vrstnem redu.
Naslov Izbirno XlYesNoGuess Določa, ali prva vrstica vsebuje glave ali ne.
  • xlNe = Ko stolpec nima nobenih glave; Privzeta vrednost.
  • xlYes = Ko imajo stolpci glave.
  • xlOdločite = Če želite Excelu omogočiti, da določi glave.

4 metode pri izvajanju VBA za razvrščanje tabele v Excelu

V tem razdelku boste izvedeli, kako razvrščanje Excelovih tabel z upoštevanjem vrednost, barve, ikone in . več stolpcev s spletno stranjo . VBA koda.

1. Vgradnja VBA za razvrščanje tabele po vrednosti v Excelu

V naslednjem primeru bomo razvrstite to tabelo po vrednostih prisotne v Mark stolpec v padajočem vrstnem redu.

Koraki:

  • Pritisnite Alt + F11 na tipkovnici ali odprite zavihek Razvijalec -> Visual Basic da odprete Urejevalnik Visual Basic .

  • V pojavnem oknu kode v menijski vrstici kliknite Vstavljanje -> Modul .

  • Kopirajte naslednjo kodo in jo prilepite v okno s kodo.
 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 

Vaša koda je zdaj pripravljena za zagon.

Tukaj,

  • SortTBL → Navedli ste ime tabele.
  • SortTBL[Marks] -> Določeno je ime stolpca tabele za razvrščanje.
  • Key1:=iColumn → Določite območje stolpcev, da bo koda vedela, kateri stolpec v tabeli je treba razvrstiti.
  • Order1:=xlDescending → Navedeno naročilo kot xlDescending za razvrščanje stolpca v padajočem vrstnem redu. Če želite razvrstiti stolpec v naraščajočem vrstnem redu, napišite xlVzpenjajoče se namesto tega.
  • Header:= xlYes → Ker ima stolpec v tej tabeli glavo, smo jo določili z xlYes možnost.

  • Pritisnite F5 na tipkovnici ali v menijski vrstici izberite Run -> Run Sub/UserForm Lahko tudi kliknete na majhna ikona za predvajanje v vrstici podmenija, da zaženete makro.

Videli boste, da je stolpec v vaši tabeli zdaj razvrščeni v padajočem vrstnem redu .

Preberite več: Kako razvrstiti podatke po vrednosti v Excelu (5 preprostih metod)

2. Vstavite makro VBA za razvrščanje tabele za več stolpcev

Prav tako lahko razvrščanje tabele za več stolpcev v Excelu z VBA makro.

V zgornji tabeli bomo razvrstili stolpce Ime in . Oddelek v naraščajočem vrstnem redu.

Koraki:

  • Na enak način kot prej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • V oknu s kodo kopirajte naslednjo kodo in jo prilepite.
 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 

Vaša koda je zdaj pripravljena za zagon.

Tukaj,

  • TableValue → Navedli ste ime tabele.
  • TableValue[Ime] -> Navedeno je ime prvega stolpca tabele za razvrščanje.
  • TableValue[Oddelek] -> Navedeno je ime drugega stolpca tabele za razvrščanje.
  • Key1:=iColumn1 → Določite območje stolpcev, da bo koda vedela, da je treba razvrstiti prvi stolpec v tabeli.
  • Key1:=iColumn2 → Določite območje stolpcev, da bo koda vedela, da je treba razvrstiti drugi stolpec v tabeli.
  • Order1:=xlAscending → Navedeno naročilo kot xlVzpenjajoče se za razvrščanje stolpca v padajočem vrstnem redu. Če želite razvrstiti stolpec v padajočem vrstnem redu, napišite xlDescending namesto tega.
  • Header:= xlYes → Ker imajo stolpci te tabele glave, smo jih določili z xlYes možnost.

  • Spustite to kodo in dobili boste oba razvrščeni stolpci tabele v naraščajočem vrstnem redu.

Preberite več: Kako samodejno razvrstiti več stolpcev v Excelu (3 načini)

Podobna branja

  • Kako razvrstiti edinstven seznam v Excelu (10 uporabnih metod)
  • Razvrstitev polja z Excelovim programom VBA (naraščajoči in padajoči vrstni red)
  • Kako razvrščati in filtrirati podatke v Excelu (popolna navodila)
  • Excelovo samodejno razvrščanje ob spremembi podatkov (9 primerov)
  • Naključno razvrščanje v Excelu (formule + VBA)

3. Izvajanje makra za razvrščanje tabele po barvi celic v Excelu

Prav tako lahko razvrstite tabelo glede na barvo celice ki ga vsebuje.

Z zgornjo tabelo kot primerom vam bomo pokazali, kako jo razvrstiti glede na barve, ki jih vsebuje ta tabela.

Koraki:

  • Kot je bilo že prikazano, je odprta Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • V oknu s kodo kopirajte naslednjo kodo in jo prilepite.
 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 

Vaša koda je zdaj pripravljena za zagon.

Tu je RGB kode, ki smo jih zagotovili, jo lahko najdete ali katero koli drugo RGB kodo, ki jo želite, tako da sledite spodnjemu gifu.

  • Samo kliknite na obarvana celica .
  • V Domov kliknite na zavihek puščica poleg Barva zapolnitve nato izberite Več barv . Videli boste RGB kode v Po meri zavihek pojavil Barve pojavno okno.

  • Spustite to kodo in vaša tabela bo razvrščeni glede na barve .

Preberite več: Kako razvrstiti po barvi v Excelu (4 merila)

4. Uporaba VBA za razvrščanje Excelove tabele po ikoni

Predpostavimo, da ima tabela nabora podatkov ikone za boljšo berljivost. tabelo na podlagi ikon v Excelu z VBA makro.

Oglejte si zgornji nabor podatkov. V tabeli so ikone ob vrednostih številk v polju Marks stolpcev, tako da lahko razumemo, kateri učenec ima dobre, slabe ali povprečne rezultate.

Če ne veste, kako lahko vstavite ikono v celico, lahko to preprosto storite z ukazom Pogojno oblikovanje v Excelu.

  • Izberite celotno območje ali stolpec.
  • Pojdi na Pogojno oblikovanje -> nabori ikon . Nato med možnostmi izberite želene nize ikon.

Koraki do razvrščanje tabele na podlagi ikon so navedeni v nadaljevanju.

Koraki:

  • Odpri Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
  • V oknu s kodo kopirajte naslednjo kodo in jo prilepite.
 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 

Vaša koda je zdaj pripravljena za zagon.

Tukaj,

  • xl5Arrows -> Izbrali smo komplet 5 puščic iz možnosti v Pogojno oblikovanje .
  • Predmet (1) -> Določeno prvi vrsta ikone puščice.
  • Postavka (2) -> Določeno drugi vrsta ikone puščice.
  • Postavka (3) -> Določeno tretji vrsta ikone puščice.
  • Postavka (4) -> Določeno četrti vrsta ikone puščice.
  • Postavka (5) -> Določeno peti vrsta ikone puščice.

  • Spustite ta koda in tabela bo razvrščeni glede na ikone .

Preberite več: Kako samodejno razvrstiti tabelo v Excelu (5 metod)

Zaključek

V tem članku je bilo prikazano, kako razvrstite tabelo v programu Excel VBA Upam, da vam je ta članek zelo koristil. Če imate kakršna koli vprašanja v zvezi s to temo, vas prosim, da jih postavite.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.