Razvrsti v Excelu VBA

Obstajajo različni načini razvrščanja podatkov v programu Microsoft Excel. Na zavihku Excel Data se nahaja ikona za razvrščanje, kjer lahko svoje podatke razvrstite na trenutek in dobite rezultate. Zakaj je potem treba napisati kompleksno kodo VBA?

Vedno ga morate imeti v mislih, kode VBA so na voljo za avtomatizacijo stvari. Recimo, da imate podatke, ki se vsake toliko posodabljajo. Mogoče vsak dan, tedensko, mesečno itd. In potrebujete svoje podatke na točno razvrščen način. V takih primerih lahko uporabite funkcijo VBA SORT in bo priročnik za vaše reference.

VBA ima metodo Range.Sort za razvrščanje podatkov za vas. Kjer Range določa obseg celic, ki jih želimo razvrstiti po naraščajočem ali padajočem vrstnem redu.

Sintaksa za Range.Sort je navedena spodaj:

Kje,

  • Ključ - stolpec / obseg, ki ga morate razvrstiti. Izv. Če želite razvrstiti celice A1: A10, morate omeniti obseg (A1: A10)
  • Vrstni red - to je parameter, ki vam omogoča razvrščanje podatkov v naraščajočem ali padajočem vrstnem redu.
  • Header - to je parameter, ki določa, ali ima stolpec / obseg glave ali ne.

Ti trije parametri so dovolj za naš postopek. Vendar obstajajo nekateri drugi parametri, kot so MatchCase, SortMethod itd., Ki jih lahko vedno raziščete in si ogledate, kako delujejo.

Kako uporabljati funkcijo razvrščanja Excel VBA?

Spoznali bomo, kako se lahko razvrsti VBA za razvrščanje stolpca brez glavic, stolpca z glavo in več stolpcev s primeri v excelu.

Predlogo VBA Razvrsti Excelo lahko prenesete tukaj - VBA Razvrsti predlogo Excela

Funkcija razvrščanja VBA - Primer 1

Razvrščanje posameznega stolpca brez glave

Recimo, da imate stolpec z imeni, kot je prikazano spodaj, vse podatke pa morate razvrstiti po abecednem redu po naraščajočem ali padajočem vrstnem redu.

Za uporabo funkcije razvrščanja v VBA sledite spodnjim korakom.

1. korak: V modulu določite nov postopek sup-a in ustvarite makro.

Koda:

 Sub SortEx1 () End Sub 

2. korak: Uporabite funkcijo Range.Sort, da lahko ta stolpec razvrstite po naraščajočem vrstnem redu.

Koda:

 Sub SortEx1 () Obseg ("A1", obseg ("A1"). Konec (xlDown)). Razvrsti konec Sub 

Tu podajate obseg od celice A1 do zadnje uporabljene / prazne celice (glejte funkcijo .End (xlDown)) do funkcije Range.Sort.

3. korak: Zdaj vnesite vrednosti argumentov.

Koda:

 PodreditevEx1 () Obseg ("A1", obseg ("A1"). Konec (xlDown)). Ključ razvrščanja1: = obseg ("A1"), vrstni red1: = xlAscending, Header: = xlNe konec pod 

Kot smo že omenili, so ključ, vrstni red in glava pomembni in potrebni argumenti, ki jih je treba predložiti. Kot začetno območje stolpca smo razvrstili Range ("A1"), ki ga moramo razvrstiti. Naročilo je na voljo kot naraščajoče in glavno kot ne (kar pomeni, da stolpec nima glave).

Ta koda bo preverila vse prazne celice, ki se začnejo z A1, nato pa jih razvrstila v naraščajočem vrstnem redu, začenši s celico A1.

4. korak: Zaženite to kodo tako, da ročno pritisnete tipko F5 ali Run in si oglejte izhod.

Če lahko primerjate to s sliko na začetku tega primera, lahko vidite, da so imena razvrščena v naraščajočem vrstnem redu.

Funkcija razvrščanja VBA - primer # 2

Razvrščanje posameznega stolpca z glavo

Recimo, da imate stolpec z glavo, kot je prikazano spodaj. In ste želeli razvrstiti ta stolpec po naraščajočem ali padajočem vrstnem redu.

Za uporabo funkcije razvrščanja v VBA sledite spodnjim korakom.

1. korak: V novem modelu določite nov podproces za shranjevanje makra.

Koda:

 Sub SortEx2 () End Sub 

2. korak: Uporabite liste („Primer # 2“), da določite, na katerem listu so vaši podatki.

Koda:

 Podatki lista SortEx2 () ("Primer # 2") End Sub 

Korak 3: Uporabite obseg ("A1"). Razvrstite pred zgornjo kodno vrstico, da naredite funkcijo razvrščanja.

Koda:

 Podatki lista SortEx2 () ("Primer # 2"). Obseg ("A1") Razvrsti konec Pod 

4. korak: Navedite Key1 kot obseg ("A1"), da razvrstite podatke iz celice A1, Order1, da podatke razvrstite po naraščajočem ali padajočem vrstnem redu, in Header kot Yes, da bi sistem vedel, da je prva vrstica v vašem podatkov.

Koda:

 Podvrsti liste ShexEx2 () ("Primer # 2"). Obseg ("A1"). Vrsta ključa razvrščanja1: = obseg ("A1"), vrstni red1: = xlAscending, Header: = xlYes End Sub 

5. korak: Zaženite to kodo tako, da ročno pritisnete tipko F5 ali Run in poglejte izhod.

Tu so podatki iz primera št. 2 danega delovnega zvezka Excela razvrščeni po naraščajočem vrstnem redu glede na to, da ima glavo. Kar pomeni, da je pri razvrščanju teh podatkov prva vrstica (ki vsebuje ime emp ) zanemarjena, ker se v stolpcu A. šteje za glavo teh podatkov.

Enake podatke lahko razvrstite tudi po padajočem vrstnem redu. Vse, kar morate storiti, je spremeniti vrstni red od naraščajočega do padajočega.

6. korak: Spremenite vrstni red1 v padajoč, da boste podatke razvrstili po padajočem vrstnem redu.

Koda:

 Podvrsti liste ShexEx2 () ("Primer # 2"). Obseg ("A1"). Ključ razvrščanja1: = obseg ("A1"), Vrstni red1: = xlDescending, Header: = xlYes End Sub 

7. korak: Zaženite kodo in si oglejte izhod, kot je navedeno spodaj.

Vidite, da so podatki razvrščeni po padajočem vrstnem redu.

Funkcija razvrščanja VBA - primer # 3

Razvrščanje več stolpcev z glavami

Do zdaj smo opisali, kako razvrstiti podatke posameznega stolpca po naraščajočem ali padajočem vrstnem redu (brez glave in z glavo). Kaj pa, če imate podatke, ki jih morate razvrstiti glede na več stolpcev? Ali je mogoče napisati kodo za isto?

Odgovor je: "Da, zagotovo je mogoče storiti!"

Recimo, da imate podatke, kot so navedeni spodaj:

Te podatke ste želeli najprej razvrstiti po imenu Emp in nato po lokaciji. Sledite spodnjim korakom in si oglejte, kako ga lahko kodiramo v VBA.

1. korak: Določite nov podpostop, da dodate makro pod novim modulom.

Koda:

 Sub SortEx3 () End Sub 

2. korak: Uporabite stavek With… End With, da dodate več pogojev razvrščanja v eno zanko.

Koda:

 Pod SortEx3 () Z ActiveSheet.Sort End Sub 

3. korak: Zdaj uporabite SortFields.Add, da v isti delovni list dodate več pogojev razvrščanja.

Koda:

 Sub SortEx3 () z ActiveSheet.Sort .SortFields.Add Key: = obseg ("A1"), vrstni red: = xlAscending .SortFields.Add Key: = obseg ("B1"), Order: = xlAscending End Sub 

4. korak: Odločite območje lista za razvrščanje in glavo V naslednjem koraku.

Koda:

 Pod SortEx3 () z ActiveSheet.Sort .SortFields.Add Key: = obseg ("A1"), vrstni red: = xlAscending .SortFields.Add Key: = domet ("B1"), Order: = xlAscending .SetRange Range ("A1 : C13 ") .Header = xlDa konec Sub 

5. korak: Uporabite .Priložite za uporabo vseh teh stvari v stavku in zaprite pisanje zanke End with.

Koda:

 Pod SortEx3 () z ActiveSheet.Sort .SortFields.Add Key: = obseg ("A1"), vrstni red: = xlAscending .SortFields.Add Key: = domet ("B1"), Order: = xlAscending .SetRange Range ("A1 : C13 ") .Header = xlDa. Uporabi konec s končnim sub 

6. korak: Zaženite to kodo tako, da ročno pritisnete tipko F5 ali Run in si oglejte izhod.

V tej kodi ActiveSheets.Sort pomaga sistemu prepoznati list, po katerem naj se razvrstijo podatki. SortFields.Add omogoča dodajanje dveh pogojev razvrščanja z njihovim vrstnim redom (naraščajoče v obeh primerih). SetRange omogoča sistemu, da nastavi razpon od A1 do C13. Tudi ta obseg lahko premaknete navzgor. Uporabi izjave omogoča sistemu, da uporabi vse spremembe, izvedene v zanki With.

Končno boste dobili podatke, ki so razvrščeni glede na ime Emp najprej in nato po lokaciji.

Stvari, ki jih je treba zapomniti

  • Pod razvrstitvijo VBA lahko ustvarite poimenovane obsege namesto referenc v celicah in jih uporabite. Izv. Če ste ustvarili imenovani obseg za celico A1: A10 kot "EmpRange", ga lahko uporabite pod Range.Sort kot Range ("EmpRange").
  • Podatke lahko razvrstite po naraščajočem in padajočem vrstnem redu, kot so podatki v excelu.
  • Če niste prepričani, ali imajo vaši podatki glavo ali ne, lahko v razdelku Header uporabite xlGuess, da sistem ugane, ali je prva vrstica podatkov glava ali ne.

Priporočeni članki

To je vodnik za razvrščanje Excela VBA. Tu smo razpravljali o razvrstitvi VBA in kako uporabljati funkcijo razvrščanja Excela VBA skupaj s praktičnimi primeri in naloženo predlogo Excela. Ogledate si lahko tudi druge naše predlagane članke -

  1. Hitri vodnik za razvrščanje v Excelu po številu
  2. Uporaba funkcije VBA Match
  3. Kako razvrstiti stolpec v Excelu?
  4. VBA Medtem ko je zanka | MS Excel

Kategorija: