VBA lajitella taulukko Excelissä (4 menetelmää)

  • Jaa Tämä
Hugh West

Käyttöönotto VBA-makro on tehokkain, nopein ja turvallisin tapa suorittaa mitä tahansa toimintoa Excelissä. Tässä artikkelissa näytämme, miten voit lajittele taulukko Excelissä VBA .

Lataa työkirja

Voit ladata ilmaisen harjoitus-Excel-työkirjan täältä.

Lajittele taulukko VBA.xlsm:llä

Asiat, jotka on tiedettävä ennen VBA:n käyttöönottoa Excelin lajittelutaulukon lajittelemiseksi Excelissä

On joitakin parametreja, joita joudut käyttämään usein työskennellessäsi ohjelmalla Lajittele menetelmä VBA Tässä keskustelemme siis joistakin parametreista, jotta voit tutustua niihin koodia kirjoittaessasi.

Parametri Pakollinen/ Valinnainen Tietotyyppi Kuvaus
Avain Valinnainen Vaihtoehto Määrittää alueen tai sarakkeen, jonka arvot lajitellaan.
Tilaa Valinnainen XlSortOrder Määrittää järjestyksen, jossa lajittelu suoritetaan.
  • xlAscending = Lajittelu nousevassa järjestyksessä.
  • xlDescending = Lajittelu alenevassa järjestyksessä.
Otsikko Valinnainen XlYesNoGuess Määrittää, sisältääkö ensimmäinen rivi otsikot vai ei.
  • xlNo = Kun sarakkeessa ei ole otsikoita; Oletusarvo.
  • xlYes = Kun sarakkeilla on otsikot.
  • xlGuess = Annetaan Excelin määrittää otsikot.

4 menetelmää VBA: n toteuttamisessa Excelin lajittelutaulukon lajittelemiseksi Excelissä

Tässä osassa näytetään, miten lajitella Excel-taulukoita ottamalla huomioon arvo, värit, kuvakkeet ja useita sarakkeita kanssa VBA koodi.

1. Upota VBA lajitella taulukko arvon mukaan Excelissä

Seuraavassa esimerkissä tarkastellaan lajitella tämä taulukko arvojen mukaan läsnä Mark sarakkeessa alenevassa järjestyksessä.

Vaiheet:

  • Paina Alt + F11 näppäimistöllä tai siirry välilehdelle Kehittäjä -> Visual Basic avata Visual Basic Editor .

  • Valitse ponnahdusikkunan valikkoriviltä seuraava vaihtoehto Lisää -> Moduuli .

  • Kopioi seuraava koodi ja liitä se koodiikkunaan.
 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 

Koodisi on nyt valmis ajettavaksi.

Täällä,

  • SortTBL → Taulukon nimen määrittäminen.
  • SortTBL[Marks] -> Määritetään lajiteltavan taulukon sarakkeen nimi.
  • Key1:=iColumn → Määritä sarakealue, jotta koodi tietää, mikä taulukon sarake lajitellaan.
  • Order1:=xlDescending → Määritelty järjestys xlDescending jos haluat lajitella sarakkeen alenevassa järjestyksessä. Jos haluat lajitella sarakkeen nousevassa järjestyksessä, kirjoita xlAscending sen sijaan.
  • Otsikko:= xlYes → Koska tämän taulukon sarakkeella on otsikko, määrittelimme sen komennolla xlYes vaihtoehto.

  • Paina F5 näppäimistöllä tai valitse valikkoriviltä Suorita -> Suorita Sub/UserForm . Voit myös vain klikata pieni Play-kuvake alivalikkopalkissa makron suorittamiseksi.

Näet, että taulukkosi sarake on nyt seuraava lajiteltu alenevaan järjestykseen .

Lue lisää: Miten lajitella tietoja arvon mukaan Excelissä (5 helppoa menetelmää)

2. Lisää VBA-makro taulukon lajittelemiseksi useiden sarakkeiden osalta.

Voit myös lajitella taulukko useiden sarakkeiden perusteella Excelissä VBA makro.

Lajittelemme edellä olevan taulukon sarakkeet seuraavasti Nimi ja Osasto nousevassa järjestyksessä.

Vaiheet:

  • Samalla tavalla kuin ennenkin, avaa Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Kopioi koodiikkunaan seuraava koodi ja liitä se.
 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[Nimi]") Set iColumn2 = Range("TableValue[Osasto]") With iTable.Sort .SortFields.Clear .SortFields.Add Avain:=iColumn1, Järjestys:=xlAscending .SortFields.Add Avain:=iColumn2, Järjestys:=xlAscending.Header = xlYes .Apply End With End Sub End Sub 

Koodisi on nyt valmis ajettavaksi.

Täällä,

  • TableValue → Taulukon nimen määrittäminen.
  • TableValue[Nimi] -> Määritetään lajiteltavan taulukon ensimmäisen sarakkeen nimi.
  • TableValue[Department] -> Määritetään lajiteltavan taulukon toisen sarakkeen nimi.
  • Key1:=iColumn1 → Määritä sarakealue, jotta koodi tietää, että taulukon ensimmäinen sarake on lajiteltava.
  • Key1:=iColumn2 → Määritä sarakealue, jotta koodi tietää, että taulukon toinen sarake on lajiteltava.
  • Order1:=xlAscending → Määritelty järjestys xlAscending jos haluat lajitella sarakkeen alenevassa järjestyksessä. Jos haluat lajitella sarakkeen alenevassa järjestyksessä, kirjoita xlDescending sen sijaan.
  • Otsikko:= xlYes → Koska tämän taulukon sarakkeissa on otsikot, määrittelimme sen komennolla xlYes vaihtoehto.

  • Suorita tämä koodi ja saat molemmat taulukon sarakkeet lajiteltuina nousevassa järjestyksessä.

Lue lisää: Kuinka lajitella useita sarakkeita Excelissä (3 tapaa)

Samanlaisia lukemia

  • Miten lajitella ainutlaatuinen luettelo Excelissä (10 hyödyllisiä menetelmiä)
  • Lajittele Array Excel VBA: lla (sekä nouseva että laskeva järjestys)
  • Miten lajitella ja suodattaa tietoja Excelissä (täydellinen ohje)
  • Excelin automaattinen lajittelu, kun tiedot muuttuvat (9 esimerkkiä)
  • Satunnainen lajittelu Excelissä (kaavat + VBA)

3. Toteuta makro lajittelemaan taulukko solun värin mukaan Excelissä

Voit myös lajitella taulukko solun värin mukaan jonka se sisältää.

Näytämme esimerkkinä yllä olevan taulukon avulla, miten se voidaan lajitella taulukon värien perusteella.

Vaiheet:

  • Kuten aiemmin on osoitettu, avoin Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Kopioi koodiikkunaan seuraava koodi ja liitä se.
 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(Avain:=iColumn, Järjestys:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Avain(=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 

Koodisi on nyt valmis ajettavaksi.

Täällä RGB koodit, jotka annoimme, voit löytää sen tai muita RGB haluamasi koodi noudattamalla alla olevaa gif-koodia.

  • Klikkaa vain värillinen solu .
  • Vuonna Etusivu välilehteä, napsauta nuoli täyttövärin vieressä valitse sitten Lisää värejä . Näet RGB koodit Custom välilehti ilmestyi Värit ponnahdusikkuna.

  • Suorita tämä koodi ja taulukkosi on lajiteltu värien perusteella .

Lue lisää: Miten lajitella värin mukaan Excelissä (4 kriteeriä)

4. VBA:n soveltaminen Excel-taulukon lajitteluun kuvakkeen mukaan

Oletetaan, että tietokokonaisuuden taulukossa on kuvakkeita luettavuuden parantamiseksi. Voit lajitella taulukon kuvakkeisiin perustuva taulukko Excelissä VBA makro.

Katso yllä olevaa tietokokonaisuutta. Tässä taulukossa on kuvakkeet numeroarvojen vieressä. Merkit sarakkeet, jotta voimme ymmärtää, minkä oppilaan tulokset ovat hyviä, huonoja tai keskimääräisiä.

Huomaa, että jos et tiedä, miten voit lisätä kuvakkeen solun sisälle, voit tehdä sen yksinkertaisesti komennolla Ehdollinen muotoilu ominaisuus Excelissä.

  • Valitse koko alue tai sarake.
  • Siirry osoitteeseen Ehdollinen muotoilu -> Kuvakkeiden sarjat . Valitse sitten haluamasi kuvakkeet vaihtoehdosta.

Vaiheet lajitella taulukko kuvakkeiden perusteella on esitetty jäljempänä.

Vaiheet:

  • Avaa Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Kopioi koodiikkunaan seuraava koodi ja liitä se.
 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(Avain:=iColumn, Järjestys:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Avain(Avain)=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 

Koodisi on nyt valmis ajettavaksi.

Täällä,

  • xl5Nuolet -> Valitsimme 5 nuolen sarja vaihtoehdosta Ehdollinen muotoilu .
  • Kohde (1) -> Määritelty ensimmäinen nuolikuvakkeen tyyppi.
  • Kohde (2) -> Määritelty toinen nuolikuvakkeen tyyppi.
  • Kohde (3) -> Määritelty kolmas nuolikuvakkeen tyyppi.
  • Kohde (4) -> Määritelty Neljäs nuolikuvakkeen tyyppi.
  • Kohde (5) -> Määritelty viides nuolikuvakkeen tyyppi.

  • Suorita tämä koodi ja taulukko on lajiteltu kuvakkeiden perusteella .

Lue lisää: Kuinka lajitella taulukko automaattisesti Excelissä (5 menetelmää)

Päätelmä

Tämä artikkeli osoitti, miten lajittele taulukko Excelissä VBA Toivottavasti tästä artikkelista on ollut teille paljon hyötyä. Kysykää rohkeasti, jos teillä on aiheeseen liittyviä kysymyksiä.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.