Excel VBA Zoradiť

Existujú rôzne spôsoby zoradenia údajov v programe Microsoft Excel. Pod pásom kariet Údaje Excelu sa nachádza ikona zoradenia, z ktorej môžete zoradiť svoje údaje v okamihu a získať výsledky. Prečo je teda potrebné napísať komplexný kód VBA?

Musíte to mať neustále na pamäti, kódy VBA sú tu na automatizáciu vecí. Predpokladajme, že máte údaje, ktoré sa tu a tam aktualizujú. Možno každý deň, týždenne, mesačne atď. A potrebujete svoje údaje špecificky usporiadaným spôsobom. V takýchto prípadoch je možné použiť funkciu VBA SORT a vyjde ako užitočný nástroj pre vašu informáciu.

VBA má metódu Range.Sort na zoradenie údajov za vás. Kde Rozsah určuje rozsah buniek, ktoré chceme zoradiť vzostupne alebo zostupne.

Syntax pre Range.Sort je uvedená nižšie:

Kde,

  • Kľúč - stĺpec / rozsah, ktorý potrebujete zoradiť. Ex. Ak chcete zoradiť bunky A1: A10, mali by ste uviesť rozsah (A1: A10)
  • Poradie - je to parameter, ktorý vám umožňuje zoradiť údaje vzostupne alebo zostupne.
  • Hlavička - je to parameter, ktorý určuje, či má váš stĺpec / rozsah hlavičky alebo nie.

Tieto tri parametre postačujú na naše konanie. Existujú však aj ďalšie parametre, ako napríklad MatchCase, SortMethod atď., Ktoré môžete vždy preskúmať a zistiť, ako fungujú.

Ako používať funkciu zoradenia Excel VBA?

Dozvieme sa, ako je možné použiť triedenie VBA na zoradenie stĺpca bez záhlaví, stĺpca so záhlavím a viacerých stĺpcov s príkladmi v exceli.

Túto šablónu triedenia Excel VBA si môžete stiahnuť tu - šablónu triedenia Excel VBA

Funkcia triedenia VBA - príklad č. 1

Zoradenie jedného stĺpca bez hlavičky

Predpokladajme, že máte stĺpec s menami, ako je uvedené nižšie, a všetko, čo potrebujete, je zoradiť tieto údaje podľa abecedy vo vzostupnom alebo zostupnom poradí.

Ak chcete použiť funkciu triedenia vo VBA, postupujte podľa nasledujúcich krokov.

Krok 1: Definujte novú sup procedúru v rámci modulu a vytvorte makro.

kód:

 Sub SortEx1 () End Sub 

Krok 2: Pomocou funkcie Range.Sort môžete triediť tento stĺpec vzostupne.

kód:

 Sub SortEx1 () Rozsah ("A1", Rozsah ("A1"). Koniec (xlDown)). 

Tu dávate rozsah začínajúci od bunky A1 po poslednú použitú / neprázdnu bunku (pozri funkciu .End (xlDown)) funkcii Range.Sort.

Krok 3: Teraz zadajte hodnoty argumentov.

kód:

 Sub SortEx1 () Range ("A1", Range ("A1"). End (xlDown)). Sort Key1: = Range ("A1"), Order1: = xlAscending, Header: = xlNo End Sub 

Ako sme už diskutovali, kľúč, poriadok a hlavička sú dôležité a potrebné argumenty, ktoré je potrebné poskytnúť. Ako počiatočný rozsah stĺpca, ktorý musíme zoradiť, sme uviedli rozsah („A1“). Poradie je poskytované ako Vzostupne a Záhlavie ako Nie (čo znamená, že stĺpec nemá záhlavie).

Tento kód skontroluje všetky neprázdne bunky počnúc A1 a potom ich zoradí vzostupne od bunky A1.

Krok 4: Spustite tento kód manuálnym stlačením klávesu F5 alebo Run a pozrite si výstup.

Ak to môžete porovnať s obrázkom na začiatku tohto príkladu, môžete vidieť, že názvy sú usporiadané vzostupne.

Funkcia triedenia VBA - príklad č. 2

Zoradenie jedného stĺpca s hlavičkou

Predpokladajme, že máte stĺpec so záhlavím, ako je uvedené nižšie. A chceli ste zoradiť tento stĺpec vzostupne alebo zostupne.

Ak chcete použiť funkciu triedenia vo VBA, postupujte podľa nasledujúcich krokov.

Krok 1: Definujte nový podprogram podľa nového modelu na uloženie makra.

kód:

 Sub SortEx2 () End Sub 

Krok 2: Pomocou hárkov („Príklad č. 2“) určte, ktorý hárok sú vaše údaje.

kód:

 Sub SortEx2 () Listy („Príklad č. 2“) Koniec Sub 

Krok 3: Použite rozsah („A1“). Zoradením pred uvedený riadok kódu urobíte funkciu triedenia.

kód:

 Podskupiny SortEx2 () („Príklad č. 2“). Rozsah („A1“) 

Krok 4: Poskytnite Key1 ako Range („A1“) na zoradenie údajov z bunky A1, Order1, aby ste mohli zoradiť dáta vo vzostupnom alebo zostupnom poradí a Header ako Yes, aby ste informovali systém, že prvý riadok je hlavička vo vašej dát.

kód:

 Podskupiny Sort Sort2 () ("Príklad č. 2"). Rozsah ("A1"). Kľúč pre triedenie 1: = Rozsah ("A1"), Poradie 1: = xlAscending, Hlavička: = xlAno Koniec Sub 

Krok 5: Spustite tento kód ručným stlačením klávesy F5 alebo Run a pozrite si výstup.

Tu sú dáta z príkladu č. 2 daného zošita programu Excel usporiadané vzostupne vzhľadom na to, že majú hlavičku. Čo znamená, že pri triedení týchto údajov sa prvý riadok (ktorý obsahuje názov Emp ) zanedbáva, pretože sa považuje za hlavičku týchto údajov v stĺpci A.

Rovnaké údaje môžete zoradiť aj v zostupnom poradí podľa abecedy. Všetko, čo musíte urobiť, je zmeniť poradie z vzostupného na zostupné.

Krok 6: Zmeňte poradie1 na zostupne, aby sa údaje zoradili zostupne.

kód:

 Podskupiny SortEx2 () ("Príklad č. 2"). Rozsah ("A1"). Kľúč na usporiadanie1: = Rozsah ("A1"), Poradie1: = xlDescendent, Header: = xlYes End Sub 

Krok 7: Spustite kód a pozrite si výstup, ako je uvedené nižšie.

Môžete vidieť, že údaje sú zoradené v zostupnom poradí.

Funkcia triedenia VBA - príklad č. 3

Triedenie viacerých stĺpcov s hlavičkami

Doteraz sme sa zaoberali tým, ako zoradiť údaje jedného stĺpca vo vzostupnom alebo zostupnom poradí (bez hlavičky a hlavičky). Čo ak máte údaje, ktoré musíte zoradiť na základe viacerých stĺpcov? Je možné napísať rovnaký kód?

Odpoveď znie: „Áno, určite sa to dá urobiť!“

Predpokladajme, že máte uvedené údaje:

Tieto údaje ste chceli zoradiť najskôr podľa názvu Emp Name a potom podľa Location. Ak chcete zistiť, ako ho môžeme kódovať vo VBA, postupujte podľa nasledujúcich krokov.

Krok 1: Definujte novú čiastkovú procedúru na pridanie makra pod nový modul.

kód:

 Sub SortEx3 () End Sub 

Krok 2: Použite príkaz With With … End With na pridanie viacerých podmienok zoradenia v jednej slučke.

kód:

 Sub SortEx3 () s ActiveSheet.Sort End Sub 

Krok 3: Teraz pomocou SortFields.Add pridajte viacnásobné podmienky zoradenia v rovnakom pracovnom hárku.

kód:

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

Krok 4: Rozhodnite o rozsahu hárkov, ktoré sa majú triediť, a hlavičke V ďalšom kroku.

kód:

 Sub SortEx3 () S ActiveSheet.Sort .SortFields.Add Key: = Range ("A1"), Order: = xlAscending .SortFields.Add Key: = Range ("B1"), Order: = xlAscending .SetRange Range ("A1" : C13 ") .Header = xlYes End Sub 

Krok 5: Použite .Použite na aplikovanie všetkých týchto vecí podľa príkazu a zatvorte písanie slučky End With.

kód:

 Sub SortEx3 () S ActiveSheet.Sort .SortFields.Add Key: = Range ("A1"), Order: = xlAscending .SortFields.Add Key: = Range ("B1"), Order: = xlAscending .SetRange Range ("A1" : C13 ") .Header = xlYes. Použite koniec s koncom Sub 

Krok 6: Spustite tento kód manuálnym stlačením tlačidla F5 alebo Run a pozrite si výstup.

V tomto kóde ActiveSheets.Sort pomáha systému identifikovať hárok, pod ktorým sa majú údaje triediť. SortFields.Add umožňuje pridať dve podmienky zoradenia s ich poradím (v oboch prípadoch vzostupne). SetRange umožňuje systému nastaviť rozsah od A1 do C13. Môžete tiež posunúť tento rozsah nahor. Príkazy Apply umožňujú systému aplikovať všetky zmeny vykonané v slučke With.

Nakoniec získate údaje, ktoré sú zoradené podľa Emp Name najprv a potom podľa Location.

Čo je potrebné pamätať

  • V rámci zoradenia VBA môžete namiesto odkazov na bunky vytvoriť pomenované rozsahy a použiť ich. Ex. Ak ste pre bunku A1: A10 vytvorili pomenovaný rozsah ako „EmpRange“, môžete ho použiť v rámci Range.Sort like Range („EmpRange“).
  • Údaje môžete zoradiť vzostupne aj zostupne rovnako ako v Exceli.
  • Ak si nie ste istí, či vaše údaje majú hlavičku alebo nie, môžete pomocou príkazu xlGuess v časti Hlavička nechať systém hádať, či je prvý riadok údajov hlavičkou alebo nie.

Odporúčané články

Toto bol sprievodca pre usporiadanie Excel VBA. Tu sme diskutovali o triedení VBA a o tom, ako používať Excel VBA radenie spolu s praktickými príkladmi a stiahnuteľnou šablónou Excel. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Stručný sprievodca Excel zoradiť podľa čísla
  2. Použitie funkcie VBA Match
  3. Ako zoradiť stĺpec v Exceli?
  4. VBA počas slučky MS Excel

Kategórie: