Excel VBA sortimine

Andmete sortimiseks Microsoft Excelis on erinevaid viise. Vahekaardi lindi Exceli andmed all on sortimisikoon, kust saate oma andmeid kiiremas korras sortida ja tulemusi saada. Miks on siis vaja kirjutada keeruline VBA kood?

Peate seda iga kord meeles pidama, VBA-koodid on asjade automatiseerimiseks olemas. Oletame, et teil on andmeid, mida värskendatakse aeg-ajalt. Võib-olla iga päev, nädal, kuu jne ja vajate oma andmeid konkreetsel sorteeritud viisil. Sellistel juhtudel saab kasutada funktsiooni VBA SORT ja see on teie jaoks mugav tööriist.

VBA-l on teie jaoks andmete sortimiseks meetod Range.Sort. Kus Range määrab lahtrite vahemiku, mida tahame kasvavas või kahanevas järjekorras sortida.

Range.Sorti süntaks on järgmine:

Kus,

  • Klahv - veerg / vahemik, mida peate sorteerima. Nt Lahtrite A1: A10 sorteerimiseks peaksite mainima vahemikku (A1: A10)
  • Järjekord - see on parameeter, mis võimaldab teil sortida andmeid kasvavas või kahanevas järjekorras.
  • Päis - see on parameeter, mis määrab, kas teie veerul / vahemikul on päised või mitte.

Need kolm parameetrit on meie menetluse jaoks piisavad. Siiski on ka mõned muud parameetrid, näiteks MatchCase, SortMethod jne, mida saate alati uurida ja vaadata, kuidas need töötavad.

Kuidas kasutada Exceli VBA sortimisfunktsiooni?

Saame teada, kuidas saab VBA sortimist kasutada päisteta veeru sortimiseks, päistega veergu ja Mitu veergu Exceli näidetega.

Selle VBA sortimise Exceli malli saate alla laadida siit - VBA sortimise Exceli mall

VBA sortimisfunktsioon - näide nr 1

Ühe veeru sortimine ilma päiseta

Oletame, et teil on veerg nimedega, nagu allpool näidatud, ja kõik, mida vajate, on sortida need andmed tähestikulises järjekorras kasvavas või kahanevas järjekorras.

VBA-s sortimisfunktsiooni kasutamiseks toimige järgmiselt.

1. samm: määratlege mooduli all uus sup-protseduur ja looge makro.

Kood:

 Sub SortEx1 () lõpetab alammenüü 

2. samm. Selle veeru sortimiseks kasvavas järjekorras kasutage funktsiooni Range.Sort.

Kood:

 Sub SortEx1 () vahemik ("A1", vahemik ("A1"). Lõpp (xlDown)). Sorteeri lõpp Sub 

Siin antakse vahemik alates lahtrist A1 kuni viimati kasutatud / mittetühja lahtrini (vt funktsiooni .End (xlDown)) funktsioonile Range.Sort.

3. samm: sisestage nüüd argumendi väärtused.

Kood:

 Alam SortEx1 () Vahemik ("A1", Vahemik ("A1"). Lõpp (xlDown)). Sordi klahv1: = Vahemik ("A1"), Järjekord1: = xlKülastav, päis: = xlNo Lõpu alam 

Nagu oleme juba varem arutanud, on võtme-, tellimis- ja päisevalikud olulised ja vajalikud argumendid. Oleme veeru lähtevahemikuks andnud vahemiku (“A1”), mida peame sorteerima. Tellimus on esitatud kasvavalt ja päise kujul kui ei (mis tähendab, et veerul pole päist).

Selle koodiga kontrollitakse kõiki tühje lahtrid alates A1-st ja sorteeritakse seejärel kasvavas järjekorras alustades lahtrist A1.

4. samm: käivitage see kood, vajutades käsitsi nuppu F5 või Käivita, ja vaadake väljundit.

Kui saate seda võrrelda selle näite alguses oleva kujutisega, näete, et nimed on järjestatud kasvavas järjekorras.

VBA sortimisfunktsioon - näide nr 2

Ühe veeru sortimine päisega

Oletame, et teil on päisega veerg, nagu allpool näidatud. Ja sa soovisid seda veergu sortida kasvavas või kahanevas järjekorras.

VBA-s sortimisfunktsiooni kasutamiseks toimige järgmiselt.

1. samm: määrake makro salvestamiseks uue mudeli alusel uus alamprotseduur.

Kood:

 Alam SordiEx2 () Lõpp Alam 

2. samm. Kasutage lehed (näide 2), et täpsustada, milline leht teie andmed on.

Kood:

 Sub SortEx2 () lehed ("Näide nr 2") lõpevad alammenüüga 

3. samm: kasutage vahemikku (“A1”). Sorteeri ülaltoodud koodirea ees, et muuta see sortimisfunktsiooniks.

Kood:

 Sub SortEx2 () lehed ("Näide nr 2"). Vahemik ("A1"). Sorteeri lõpp Sub 

4. samm: pakkuge võtme1 vahemikuna („A1”), et sorteerida andmed lahtrist A1, järjekord1, et sortida andmeid kasvavas või kahanevas järjekorras, ja Päis - jah, et süsteemile teada anda, et esimene rida on teie päises andmed.

Kood:

 Alam SortEx2 () lehed ("Näide nr 2"). Vahemik ("A1"). Sorteerimise võti1: = Vahemik ("A1"), Järjekord1: = xlKülastav, päis: = xlJa End Sub 

5. samm: käivitage see kood, vajutades käsitsi nuppu F5 või Käivita. Vaadake väljundit.

Siin sorteeritakse antud Exceli töövihiku näite 2 andmed kasvavas järjekorras, arvestades, et sellel on päis. Mis tähendab, et nende andmete sortimisel jäetakse esimene rida (mis sisaldab Empi nime ) tähelepanuta, kuna seda peetakse A-veerus nende andmete päiseks.

Saate samu andmeid sortida ka tähestiku kahanevas järjekorras. Kõik, mida peate tegema, on muuta järjekorda tõusust laskuvaks.

6. samm: muutke järjekord1 kahanevaks, et sortida andmeid kahanevas järjekorras.

Kood:

 AlamjärjestusEx2 () lehed ("Näide nr 2"). Vahemik ("A1"). Sorteerimise võti1: = Vahemik ("A1"), Järjekord1: = xlDescending, Header: = xlJa End Sub 

7. samm: käivitage kood ja vaadake allpool toodud väljundit.

Näete, et andmed on sorteeritud kahanevas järjekorras.

VBA sortimisfunktsioon - näide nr 3

Mitme veeru sortimine päistega

Siiani oleme käsitlenud, kuidas sortida ühte veergu andmeid kasvavas või kahanevas järjekorras (ilma päiseta ja koos päisega). Mis siis, kui teil on andmeid, mida peate sorteerima mitme veeru alusel? Kas on võimalik sama koodi kirjutada?

Vastus on: "Jah, kindlasti saab seda teha!"

Oletame, et teil on allpool toodud andmed:

Tahtsite neid andmeid esmalt sortida Emp Name'i ja seejärel asukoha järgi. Järgige järgmisi samme, et näha, kuidas seda VBA-s kodeerida.

1. samm: määratlege uus alamprotseduur makro lisamiseks uude moodulisse.

Kood:

 Sub SortEx3 () lõpetab alammenüü 

2. samm: kasutage käsku With… End With, et lisada mitu sorditingimust ühte ahelasse.

Kood:

 Alam SortEx3 () rakendusega ActiveSheet.Sort End Sub 

3. samm: kasutage samal töölehel mitme sortimise tingimuste lisamiseks sortimisvälju.Lisa.

Kood:

 Alam SortEx3 () koos rakendusega ActiveSheet.Sort .SortFields.Add Key: = Range ("A1"), Order: = xlAscending .SortFields.Add Key: = Range ("B1"), Order: = xlAscending End Sub 

4. samm: otsustage sorteeritava lehevahemik ja päis Järgmises etapis.

Kood:

 Alam SortEx3 () koos ActiveSheet.Sort .SortFields.Lisavõtmega: = Range ("A1"), Order: = xlAscending .SortFields.Add Key: = Range ("B1"), Order: = xlAscending .SetRange Range ("A1 : C13 ") .Header = xlJa lõpp alam 

5. samm: kasutage .Kandke kõik need asjad avaldusega alla ja sulgege silmuse kirjutamine lõppklahviga.

Kood:

 Alam SortEx3 () koos ActiveSheet.Sort .SortFields.Lisavõtmega: = Range ("A1"), Order: = xlAscending .SortFields.Add Key: = Range ("B1"), Order: = xlAscending .SetRange Range ("A1 : C13 ") .Kuuldaja = xlJah .Kandke lõpp lõpuosaga Sub 

6. samm: käivitage see kood, vajutades käsitsi nuppu F5 või Käivita, ja vaadake väljundit.

Selles koodis aitab ActiveSheets.Sort süsteemil tuvastada lehe, mille all andmeid tuleb sortida. SortFields.Add võimaldab lisada kaks sorteerimistingimust nende järjekorras (mõlemal juhul kasvavalt). SetRange võimaldab süsteemil seada vahemikku A1 kuni C13. Samuti saate seda vahemikku ülespoole tõsta. Rakenda avaldusi võimaldab süsteemil rakendada kõiki With Loo-s tehtud muudatusi.

Lõpuks saate andmed, mis on järjestatud vastavalt nimele Esiteks ja seejärel asukoha järgi.

Asjad, mida meeles pidada

  • VBA sortimise all saate lahtriviidete asemel luua nimelisi vahemikke ja kasutada neid. Nt Kui olete loonud lahtri A1: A10 jaoks nimetatud vahemiku kui “EmpRange”, saate seda kasutada jaotises Range.Sort nagu Range (“EmpRange”).
  • Andmeid saate sorteerida nii kasvavas kui ka kahanevas järjekorras, nagu Excelis.
  • Kui te pole kindel, kas teie andmetel on päis või mitte, saate jaotises Päis jaotises xlGuess kasutada süsteemi arvata, kas esimene andmerida on päis või mitte.

Soovitatavad artiklid

See on olnud Excel VBA sortimise juhend. Siin arutasime VBA sortimist ja seda, kuidas kasutada Exceli VBA sortimisfunktsiooni koos praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. Exceli lühijuhend numbri järgi sortimiseks
  2. VBA mängufunktsiooni kasutamine
  3. Kuidas veergu sortida Excelis?
  4. VBA Kuigi silmus | MS Excel

Kategooria: