Sortiraj Excel VBA

Postoje različiti načini sortiranja podataka u programu Microsoft Excel. Na vrpci kartice Excel Data nalazi se ikona za sortiranje na temelju koje se mogu trenutačno sortirati podaci i dobiti rezultate. Zašto je tada potrebno napisati složeni VBA kod?

Morate ga imati na umu svaki put, VBA kodovi su tu za automatiziranje stvari. Pretpostavimo da imate podatke koji se svakodnevno ažuriraju. Možda svaki dan, tjedno, mjesečno itd. I potrebni su vam vaši podaci na određeni način sortiranja. U takvim se slučajevima može upotrebljavati VBA SORT funkcija koja će biti zgodan alat za vašu referencu.

VBA ima metodu Range.Sort za sortiranje podataka za vas. Gdje je raspon određuje raspon ćelija koje želimo sortirati uzlaznim ili silaznim redoslijedom.

Sintaksa za Range.Sort je kako je dano u nastavku:

Gdje,

  • Ključ - Stupac / raspon koji trebate sortirati. Ex. Ako želite sortirati ćelije A1: A10, trebali biste spomenuti raspon (A1: A10)
  • Naručivanje - ovo je parametar koji vam omogućuje sortiranje podataka uzlaznim ili silaznim redoslijedom.
  • Zaglavlje - Ovo je parametar koji određuje ima li vaš stupac / raspon zaglavlja ili ne.

Ova tri parametra su dovoljna za naš postupak. No, postoje i neki drugi parametri poput MatchCase, SortMethod, itd., Koje uvijek možete istražiti i vidjeti kako oni funkcioniraju.

Kako koristiti Excel VBA funkciju sortiranja?

Naučit ćemo kako se VBA Sort može koristiti za sortiranje stupca bez zaglavlja, stupca sa zaglavljima i Više stupaca s primjerima u excelu.

Ovdje možete preuzeti ovaj VBA predložak za sortiranje Excela - VBA Sortiraj predložak Excela

Funkcija sortiranja VBA - Primjer # 1

Razvrstavanje jednog stupca bez zaglavlja

Pretpostavimo da imate stupac s imenima kako je prikazano u nastavku, a sve što trebate je sortirati te podatke abecednim redom prema rastućem ili silaznom redoslijedu.

Slijedite dolje navedene korake za upotrebu funkcije sortiranja u VBA.

Korak 1: Definirajte novi sup-postupak u modulu i stvorite makronaredbu.

Kodirati:

 Sub SortEx1 () Kraj Sub 

Korak 2: Upotrijebite funkciju Range.Sort da biste mogli sortirati ovaj stupac uzlaznim redoslijedom.

Kodirati:

 Sub SortEx1 () Raspon ("A1", raspon ("A1"). Kraj (xlDown)). Sort End Sub 

Ovdje dajete raspon počevši od ćelije A1 do posljednje korištene / ne prazne ćelije (pogledajte funkciju. Završi (xlDown)) do funkcije Range.Sort.

Korak 3: Sada unesite vrijednosti argumenta.

Kodirati:

 Sub SortEx1 () Raspon ("A1", raspon ("A1"). Kraj (xlDown)). Ključ sortiranja1: = raspon ("A1"), Red1: = xlAcecending, Header: = xlNe Kraj Sub 

Kao što smo ranije raspravljali, ključ, naredba i zaglavlje važni su i potrebni argumenti koje treba pružiti. Dali smo raspon („A1“) kao početni raspon stupaca koji trebamo sortirati. Naruči se kao rastući i zaglavlje kao ne (što znači da stupac nema zaglavlje).

Ovaj će kôd provjeriti ima li svih praznih ćelija počevši od A1 te ih zatim sortirati uzlaznim redoslijedom počevši od ćelije A1.

Korak 4: Pokrenite ovaj kôd pritiskom na F5 ili Run gumb i ručno pogledajte izlaz.

Ako to možete usporediti sa slikom na početku ovog primjera, možete vidjeti da su imena sortirana uzlaznim redoslijedom.

Funkcija sortiranja VBA - Primjer # 2

Razvrstavanje jednog stupca s zaglavljem

Pretpostavimo da imate stupac s zaglavljem kao što je prikazano u nastavku. I željeli ste sortirati ovaj stupac uzlaznim ili silaznim redoslijedom.

Slijedite dolje navedene korake za upotrebu funkcije sortiranja u VBA.

Korak 1: Pod novim modelom definirajte novi podpostupak za spremanje makronaredbe.

Kodirati:

 Sub SortEx2 () Kraj Sub 

Korak 2: Upotrijebite tablice ("Primjer # 2") kako biste odredili na kojem su listu vaši podaci.

Kodirati:

 Sub SortEx2 () listovi ("Primjer # 2") Kraj Sub 

Korak 3: Upotrijebite raspon ("A1") Poredajte ispred gornje linije koda kako biste ga postavili funkcijom sortiranja.

Kodirati:

 Sub SortEx2 () listovi ("Primjer # 2"). Raspon ("A1"). Sort End Sub 

Korak 4: Navedite Key1 kao raspon ("A1") kako biste podatke razvrstali iz ćelije A1, Order1 kako biste podatke sortirali u uzlaznom ili silaznom redoslijedu, a Header kao Yes da sustav obavijesti da je prvi red zaglavlje u vašem podaci.

Kodirati:

 Sub SortEx2 () listovi ("Primjer # 2"). Raspon ("A1"). Ključ sortiranja1: = Raspon ("A1"), Red1: = xlAcecending, Header: = xlYes End Sub 

Korak 5: Pokrenite ovaj kôd pritiskom na tipku F5 ili Run i ručno pogledajte izlaz.

Ovdje su podaci iz primjera br. 2 dane radne knjige Excela poredani uzlaznim redoslijedom s obzirom na to da ima zaglavlje. Što znači da je prilikom razvrstavanja tih podataka prvi redak (koji sadrži ime emp-a ) zapostavljen jer se u stupcu A. smatra zaglavljem tih podataka.

Iste podatke možete sortirati i prema padajućem redoslijedu. Sve što trebate učiniti je promijeniti poredak od uzlaznog do silaznog.

Korak 6: Promijenite redoslijed1 u silazni kako biste podatke razvrstali u silaznom redoslijedu.

Kodirati:

 Sub SortEx2 () listovi ("Primjer # 2"). Raspon ("A1"). Ključ sortiranja1: = Raspon ("A1"), Red1: = xlDescending, Header: = xlYes End Sub 

Korak 7: Pokrenite kod i pogledajte izlaz kao što je dano u nastavku.

Možete vidjeti da su podaci razvrstani u silaznom redoslijedu.

Funkcija sortiranja VBA - Primjer # 3

Razvrstavanje više stupaca s zaglavljima

Do sada smo objasnili kako sortirati podatke jednog stupca uzlaznim ili silaznim redoslijedom (bez zaglavlja i sa zaglavljem). Što ako imate podatke koje trebate razvrstati na temelju više stupaca? Je li moguće napisati kod za isti?

Odgovor je: "Da, sigurno se to može učiniti!"

Pretpostavimo da imate podatke kako su dolje navedeni:

Ove podatke želite prvo sortirati prema nazivu Emp, a zatim prema lokaciji. Slijedite dolje navedene korake da biste vidjeli kako to možemo kodirati u VBA.

Korak 1: Definirajte novi pod-postupak dodavanja makronaredbe pod novim modulom.

Kodirati:

 Sub SortEx3 () Kraj Sub 

Korak 2: Upotrijebite naredbu With… End With za dodavanje više uvjeta sortiranja u jednu petlju.

Kodirati:

 Sub SortEx3 () s ActiveSheet.Sort End Sub 

Korak 3: Sada upotrijebite SortFields.Add da biste dodali više uvjeta sortiranja u isti radni list.

Kodirati:

 Sub SortEx3 () s ActiveSheet.Sort .SortFields.Add Key: = raspon ("A1"), Red: = xlAscending .SortFields.Add Key: = domet ("B1"), Red: = xlAscending End Sub 

Korak 4: Odlučite raspon lista za sortiranje i zaglavlje U sljedećem koraku.

Kodirati:

 Sub SortEx3 () s ActiveSheet.Sort .SortFields.Add Key: = domet ("A1"), Red: = xlAscending .SortFields.Add Key: = domet ("B1"), Red: = xlAscending .SetRange Range ("A1 : C13 ") .Header = xlDa Kraj Sub 

Korak 5: Upotrijebite .Prinesite sve te stvari pod izjavom i zatvorite petlju s pisanjem kraja.

Kodirati:

 Sub SortEx3 () s ActiveSheet.Sort .SortFields.Add Key: = domet ("A1"), Red: = xlAscending .SortFields.Add Key: = domet ("B1"), Red: = xlAscending .SetRange Range ("A1 : C13 ") .Header = xlDa .Priloži kraj s krajnjim pod 

Korak 6: Pokrenite ovaj kôd pritiskom na F5 ili Run gumb i ručno pogledajte Output.

U ovom kodu ActiveSheets.Sort pomaže sustavu da identificira list pod kojim će se podaci sortirati. SortFields.Add omogućuje dodavanje dva uvjeta sortiranja svojim redoslijedom (Uzlazno u oba slučaja). SetRange sustavu omogućuje postavljanje raspona od A1 do C13. Možete pomaknuti i ovaj raspon prema gore. Primjena izraza omogućuje sustavu da primijeni sve promjene izvršene u With petlji.

Konačno, dobit ćete podatke koji su razvrstani na temelju Emp Name, a zatim prema lokaciji.

Stvari koje treba zapamtiti

  • Pod VBA razvrstavanjem možete stvoriti nazive raspona umjesto referenci ćelija i upotrijebiti ih. Ex. Ako ste kreirali imenovani raspon za ćeliju A1: A10 kao "EmpRange", možete je koristiti pod Range.Sort poput raspona ("EmpRange").
  • Podatke možete sortirati uzlazno i ​​prema silazno kao u excelu.
  • Ako niste sigurni da li vaši podaci imaju zaglavlje ili ne, možete upotrijebiti xlGuess u odjeljku Zaglavlje da biste omogućili da sustav pogodi je li prvi redak zaglavlje ili ne.

Preporučeni članci

Ovo je vodič za sortiranje Excel VBA. Ovdje smo razmotrili VBA Sort i kako koristiti Excel VBA funkciju sortiranja uz praktične primjere i preuzeti Excel predložak. Možete i pregledati naše druge predložene članke -

  1. Kratki vodič za Excel Poredaj po broju
  2. Korištenje VBA Match funkcije
  3. Kako razvrstati stupac u Excel?
  4. VBA Dok je petlja | MS Excel

Kategorija: