Ako zoradiť rozsah pomocou VBA v programe Excel (6 príkladov)

  • Zdieľajte To
Hugh West

Vedieť, ako zoradiť rozsah pomocou VBA v programe Excel, šetrí čas a námahu pri našich každodenných výpočtoch. Hoci program Excel štandardne poskytuje možnosť triedenia. Pomocou Range.Sort metóda , získame prístup k niekoľkým parametrom na triedenie súboru údajov s viacerými možnosťami ako zvyčajne.

Stiahnite si cvičebnicu

Stiahnite si tento cvičebný zošit, aby ste si počas čítania tohto článku precvičili svoje zručnosti.

Triedenie rozsahu v programe Excel.xlsm

Úvod do príkazu Range.Sort v programe Excel VBA

Cieľ : Zoradenie rozsahu údajov bunky.

Syntax:

výraz .Sort ( Kľúč1 , Objednávka1 , Kľúč2 , Typ , Objednávka2 , Kľúč3 , Objednávka3 , Záhlavie , ObjednávkaVlastné , MatchCase , Orientácia , SortMethod , DataOption1 , DataOption2 , DataOption3 )

Tu sa výraz predstavuje Rozsah objekt, t. j. bunku, riadok, stĺpec alebo výber buniek.

Argumenty:

Musíme poskytnúť tri hlavné parametre pre Range.Sort metóda. Sú to...

Kľúč - Rozsah buniek z jedného alebo viacerých stĺpcov, ktoré potrebujeme zoradiť.

Objednávka - Zadajte poradie triedenia vzostupne alebo zostupne.

Záhlavie - Deklarovať, či stĺpce, ktoré sa majú triediť, majú alebo nemajú hlavičku.

6 príkladov na triedenie rozsahu v programe Excel VBA

V tomto článku ako súbor údajov použijeme zoznam mien ľudí s ich dátumom narodenia a vekom. Na triedenie súboru údajov použijeme rôzne metódy. Prejdime si článok a precvičme si, aby sme tieto metódy zvládli.

1. Triedenie rozsahu jedného stĺpca pomocou programu Excel VBA

V tomto príklade triedenie ľudí z najstarší na najmladší . Postupujme podľa krokov na použitie Rozsah . Triediť metóda ktoré budú triediť . Vekový stĺpec na stránke zostupné poradie .

Kroky:

  • Prejdite na Karta Vývojár v Pásmo aplikácie Excel na kliknite na na Visual Basic

  • Potom vyberte Možnosť modulu z Vložiť kartu otvoriť nový modul .

Teraz vložíme náš kód do triedenie . Vek rozsah stĺpcov.

1.1 Stĺpec so záhlavím

Do vizuálneho editora kódu vložte nasledujúci kód.

 Sub SortRange() Range("D4:D11").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlYes End Sub 

Tlač F5 alebo kliknite na Spustiť tlačidlo na vykonať kód.

Vysvetlenie:

Vo vyššie uvedenom kóde sme vložili-

Výraz (objekt Range)=Range("D4:D11"); . stĺpec veku s záhlavie na stránke bunka D4 a hodnoty na stránke D5:D11.

Key = Range("D4"); . kľúč pre triedenie.

Order= xlDescending; ako chceme triedenie hodnoty z najväčší na najnižšia nastavíme poradie triedenia ako zostupne.

Hlavička =xlAno; Na nasledujúcom obrázku vidíme, že súbor údajov záhlavie pre každú z stĺpce.

1.2 Stĺpec bez záhlavia

Do vizuálneho editora kódu vložte nasledujúci kód.

 Sub SortRange() Range("D4:D10").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlNo End Sub 

Tlač F5 alebo kliknite na Spustiť tlačidlo na vykonať kód.

Vysvetlenie:

Vo vyššie uvedenom kóde sme vložili-

Výraz (objekt Range)=Range("D4:D10"); . stĺpec veku bez záhlavie hodnoty na stránke D4:D10.

Key = Range("D4"); . kľúč pre triedenie.

Order= xlDescending; ako chceme triedenie hodnoty z najväčší na najnižšia nastavíme poradie triedenia ako zostupne.

Hlavička =xlNo; Na nasledujúcom obrázku vidíme, že súbor údajov nemá záhlavie.

Súvisiaci obsah: Ako triediť stĺpce v programe Excel bez miešania údajov (3 spôsoby)

2. Použitie kódu VBA na triedenie rozsahu viacerých stĺpcov v programe Excel

Zobrazenie triedenia v viacero stĺpcov , musíme upraviť naše súbor údajov trochu. My vložené niekoľko nový riadky V upravenom súbore údajov sú riadky 7, 8, a 9 majú to isté hodnoty pre dátum narodenia a vek ale tri rôzne názvy . mená nie v akomkoľvek konkrétna objednávka vzostupného alebo zostupného.

V tomto príklade zoradíme názvy do vzostupné poradie . Spustime nasledujúci kód v editore Visual Basic:

 Sub SortRange() Range("B4:D12").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Key2:=Range("B4"), _ Order2:=xlAscending, _ Header:=xlYes End Sub 

Vysvetlenie:

Na vyššie uvedenej snímke obrazovky vidíme, že vek v stĺpec D zoradené na stránke zostupne Objednávka. Pridali sme ďalšie dva parametre v našom predchádzajúcom kóde.

Kľúč2: =Range("B4") , kľúč na triedenie názvov.

Order2: =xlAscending ,. objednávka pre skracovanie mien .

Výsledkom je, že vidíme mená na stránke riadky 7, 8 a 9 sú teraz podľa abecedy zoradené v vzostupne objednávka.

Na nasledujúcom obrázku sme zmenili hodnota z Parameter Order2 na triedenie . mená na stránke zostupne objednávka.

Prečítajte si viac: Ako triediť viac stĺpcov v programe Excel (5 rýchlych prístupov)

3. Dvojklik na záhlavie na zoradenie rozsahu stĺpcov v programe Excel VBA

Predvolená funkcia triedenia programu Excel neumožňuje triedenie hodnôt stĺpca podľa dvojité kliknutie na . záhlavie stĺpca . Ale pomocou kódu VBA to môžeme uskutočniť. Ilustrujme túto funkciu použitím nasledujúceho kódu.

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim KeyRange As Range Dim ColCount As Integer ColCount = Range("A1:C8").Columns.Count Cancel = False If Target.Row = 1 And Target.Column <= ColCount Then Cancel = True Set KeyRange = Range(Target.Address) Range("A1:C8").Sort Key1:=KeyRange, Header:=xlYes End If End Sub 

V tomto kóde sme použili Udalosť BeforeDoubleClick na vypnúť obvyklé dvojité - kliknite na ktorý je na spustenie editácia Ak sa táto udalosť spustí, ak dvojité - kliknite na na ktoromkoľvek z záhlavia stĺpcov zoradí údaje v stĺpcoch v vzostupné poradie .

Prečítajte si viac: VBA na triedenie stĺpcov v programe Excel (4 metódy)

Podobné čítania:

  • Ako pridať tlačidlo triedenia v programe Excel (7 metód)
  • Triedenie jedinečného zoznamu v programe Excel (10 užitočných metód)
  • Ako používať funkciu triedenia v programe Excel VBA (8 vhodných príkladov)
  • Triedenie duplikátov v programe Excel (stĺpce a riadky)
  • Náhodné triedenie v programe Excel (vzorce + VBA)

4. Zoradenie rozsahu stĺpcov na základe farby pozadia pomocou programu Excel VBA

Rozsah buniek v stĺpci môžeme zoradiť na stránke . na ich farba pozadia Aby sme to mohli urobiť, musíme pridať a parameter s názvom SortOn ktorý má hodnota xlSortOnCellColor Na demonštráciu triedenia najprv nastavíme rôzne farby pozadia do riadkov našej súbor údajov .

Potom v editore kódu Visual Basic kopírovať nasledujúci kód a stlačte F5 na jeho spustenie.

 Sub SortRangeByBackgroundColor() ActiveWorkbook.Worksheets("background").Sort.SortFields.Add2 Key:=Range("B4"), _ SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("background").Sort .SetRange Range("B4:D10") .Apply End With End Sub 

Na nasledujúcej snímke obrazovky vidíme triedený súbor údajov na základe ich farby pozadia.

Vysvetlenie:

  • V tomto príklade sme pomenovali pracovný list " pozadie ". V kóde teda vložíme " pozadie " ako náš názov aktívneho pracovného hárku.
  • Nastavili sme B4 ako kľúč a B4:D10 ako rozsah . Kód bude triediť údaje na základe kľúča.
  • Keďže sme nezadali parameter záhlavia , kód sa spustí pre predvolené bez hlavičky.
  • Nastavili sme objednávka parameter ako vzostupne, takže zoradil údaje od nižších hodnôt k vyšším. .

Prečítajte si viac: Ako triediť podľa farby v programe Excel (4 kritériá)

5. Použitie kódu VBA na triedenie rozsahu stĺpcov na základe farby písma

Použitím kódu VBA môžeme zoradiť súbor údajov na základe ich farba písma . Po prvé, musíme farba rôznych riadkov na ilustráciu príkladu.

Na zoradenie súboru údajov na základe farba písma.

 Sub SortRangeByFontColor() ActiveWorkbook.Worksheets("fontcolor").Sort.SortFields.Add(Range("B4"), _ xlSortOnFontColor, xlAscending, xlSortNormal).SortOnValue.Color = RGB(0, 0, 0) With ActiveWorkbook.Worksheets("fontcolor").Sort .SetRange Range("B4:D11") .Header = xlYes .Orientation = xlTopToBottom .Apply End With End Sub 

Vysvetlenie:

  • V tomto príklade sme pomenovali pracovný list " fontcolor ". V kóde teda vložíme " fontcolor " ako náš názov aktívneho pracovného hárku.
  • Nastavili sme B4 ako kľúč a B4:D11 ako rozsah . Kód bude triediť údaje na základe kľúča.
  • V tomto príklade sme tiež zadali parameter hlavičky ako xlYes .
  • Tu sme nastavili objednávka parameter ako vzostupne, takže zoradil údaje od nižších hodnôt k vyšším. .
  • Hodnota SortOn parameter je
  • Stránka parameter orientácie má hodnotu xlTopToBottom pretože je to povinné.
  • Farba na triedenie je v zmysle RGB, ktorý má hodnotu od 0 na 255 .

Prečítajte si viac: Ako zoradiť dva stĺpce v programe Excel tak, aby sa zhodovali (presná aj čiastočná zhoda)

6. Zmena orientácie na triedenie rozsahu pomocou programu Excel VBA

Použitie orientácia môžeme zmeniť spôsob triedenia údajov. V tomto príklade máme transponované náš súbor údajov na triediť to horizontálne .

Nasledujúci kód vložíme do editora Visual Basic a spustíme ho stlačením klávesy F5.

 Sub Orientation() Range("B4:H6").Sort Key1:=Range("B6"), _ Order1:=xlAscending, _ Orientation:=xlSortRows, _ Header:=xlYes End Sub 

Tu sme zoradené údaje na základe vekový riadok na stránke vzostupne objednávka z vľavo na vpravo V kóde nastavíme orientácia parameter ako xlSortRows .

Súvisiaci obsah: Ako automaticky zoradiť viac stĺpcov v programe Excel (3 spôsoby)

Čo si treba zapamätať

  • Stránka Parameter SortOn ktoré sme použili na triedenie rozsah stĺpcov na základe farba pozadia a farba písma môže používať iba objekt pracovného hárka . Nemôžeme ho používať s objekt rozsahu .
  • Stránka Udalosť BeforeDoubleClick triedi údaje len v vzostupne.

Záver

Teraz už vieme, ako zoradiť rozsah pomocou VBA v programe Excel. Dúfame, že vás to povzbudí k tomu, aby ste to používali s väčšou istotou. Akékoľvek otázky alebo návrhy nezabudnite uviesť do komentára nižšie.

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.