Obsah
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 má 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 má 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á sú 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 sú 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.