Obsah
Triedenie v programe Excel pomocou VBA , musíte použiť Range.Sort V tomto článku vám ukážeme, ako zoradiť stĺpec v programe Excel pomocou Range.Sort metóda VBA .
Stiahnite si pracovný zošit
Bezplatný cvičný zošit Excel si môžete stiahnuť odtiaľto.
Zoradenie stĺpca pomocou VBA.xlsm
Metóda Range.Sort v programe Excel VBA
Range.Sort metóda v VBA triedi rozsah hodnôt v programe Excel. Tu Rozsah je objektová premenná, ktorá určuje rozsah buniek, ktoré chceme zoradiť vo vzostupnom alebo zostupnom poradí.
Nižšie sú uvedené parametre, ktoré je potrebné poznať pri práci s touto metódou.
Parameter | Povinné/ voliteľné | Typ údajov | Popis |
---|---|---|---|
Kľúč | Voliteľné | Variant | Určuje rozsah alebo stĺpec, ktorého hodnoty sa majú zoradiť. |
Objednávka | Voliteľné | XlSortOrder | Určuje poradie, v ktorom sa triedenie vykoná.
|
Záhlavie | Voliteľné | XlYesNoGuess | Určuje, či prvý riadok obsahuje hlavičky alebo nie.
|
4 metódy implementácie VBA na triedenie stĺpcov v programe Excel
V tejto časti sa dozviete, ako zoradiť jeden stĺpec s hlavičkou a bez hlavičky , viacero stĺpcov so záhlaviami a bez nich a ako zoradiť len dvojitým kliknutím na záhlavie v stĺpci v programe Excel.
1. Vloženie VBA na triedenie jedného stĺpca bez záhlavia v programe Excel
Ak chcete zoradiť jeden stĺpec v pracovnom hárku Excelu pomocou VBA potom postupujte podľa nasledujúcich krokov.
Toto je náš stĺpec, ktorý budeme triediť pomocou VBA kód.
Kroky:
- Tlač Alt + F11 na klávesnici alebo prejdite na kartu Vývojár -> Visual Basic otvoriť Editor jazyka Visual Basic .
- Vo vyskakovacom okne kódu kliknite na paneli ponúk na položku Vložiť -> Modul .
- Skopírujte nasledujúci kód a vložte ho do okna kódu.
Sub SortSingleColumnWithoutHeader() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Váš kód je teraz pripravený na spustenie.
Tu,
- Key1:=Range("B5") → Špecifikované B5 aby kód vedel, ktorý stĺpec má triediť.
- Order1:=xlAscending → Zadané poradie ako xlVzostupné ak chcete stĺpec zoradiť vzostupne. Ak chcete stĺpec zoradiť zostupne, napíšte xlZostupne namiesto toho.
- Hlavička:= xlNo → Keďže náš stĺpec nemá žiadne záhlavie, tak sme ho špecifikovali pomocou xlNo možnosť.
- Tlač F5 na klávesnici alebo na paneli ponúk vyberte Run -> Run Sub/UserForm Môžete tiež jednoducho kliknúť na malá ikona Play na paneli podmenu, aby ste makro spustili.
Uvidíte, že váš stĺpec je teraz zoradené vzostupne .
Všimnite si, že tu sme rozsah údajov definovali ručne ako Rozsah("B5:B15") .
Ak chcete zmeniť údaje pridaním alebo odstránením hodnôt, môžete implementovať nasledujúci kód, ktorý sa automaticky aktualizuje na základe buniek v súbore údajov.
Sub SortSingleColumnWithoutHeader() Range("B5", Range("B5").End(xlDown)).Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Všimnite si, že namiesto ručného definovania rozsahu pomocou Rozsah("B5:B15") , sme napísali, Rozsah( "B5", Range("B5"). End(xlDown)) .
Týmto spôsobom sa stĺpec zoradí na základe poslednej postupne vyplnenej bunky. Ak sú v ňom prázdne bunky, údaje sa budú brať do úvahy len po prvú prázdnu bunku.
Čítajte viac: VBA na triedenie tabuľky v programe Excel (4 metódy)
2. Vloženie makra VBA na triedenie jedného stĺpca so záhlavím
V predchádzajúcej časti sme mali súbor údajov s jedným stĺpcom bez hlavičky, ale teraz máme a stĺpec so záhlavím .
Tentoraz sa naučíme, ako ho triediť pomocou Makro VBA .
Kroky:
- Rovnaký spôsob ako predtým, otvoriť Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- V okne kódu skopírujte nasledujúci kód a vložte ho.
Sub SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub
Váš kód je teraz pripravený na spustenie.
Tu,
- Key1:=Range("B5") → Špecifikované B5 aby kód vedel, ktorý stĺpec má triediť.
- Order1:=xlDescending → Tentoraz zoradíme stĺpec zostupne, takže zadáme poradie ako xlZostupne .
- Hlavička:= xlYes → Keďže náš stĺpec má tentoraz hlavičku, tak sme ju zadali pomocou xlYes možnosť.
- Spustiť tento kód a dostanete stĺpec so záhlavím zoradeným zostupne .
Prečítajte si viac: Ako triediť ListBox pomocou VBA v programe Excel (kompletný sprievodca)
Podobné čítanie:
- Ako triediť IP adresy v programe Excel (6 metód)
- [Vyriešené!] Excel nefunguje (2 riešenia)
- Ako pridať tlačidlo triedenia v programe Excel (7 metód)
- Triedenie rozsahu pomocou VBA v programe Excel (6 príkladov)
- Ako triediť podľa názvu v programe Excel (3 príklady)
3. Makro VBA na triedenie viacerých stĺpcov so záhlavím alebo bez neho
Môžete tiež triedenie viacerých stĺpcov v súbore údajov pomocou kódu VBA.
Kroky:
- Ako už bolo uvedené, otvorené Editor jazyka Visual Basic z Vývojár karta a Vložte a Modul v okne kódu.
- V okne kódu skopírujte nasledujúci kód a vložte ho.
Sub SortMultipleColumnsWithHeaders() With ActiveSheet.Sort .SortFields.Add Key:=Range("B4"), Order:=xlAscending .SortFields.Add Key:=Range("C4"), Order:=xlAscending .SetRange Range("B4:D15") .Header = xlYes .Apply End With End Sub
Váš kód je teraz pripravený na spustenie.
Tu,
.SortFields.Add Kľúč:=Range("B4"), Poradie:=xlAscending
.SortFields.Add Kľúč:=Range("C4"), Poradie:=xlAscending
Týmito dvoma riadkami definujeme Bunka B4 a C4 na triedenie dva stĺpce, ktoré sú s nimi spojené na stránke vzostupné poradie .
Keďže v našom súbore údajov máme hlavičky, zadali sme Hlavička = xlYes , inak by sme napísali Hlavička = xlNo vnútri kódu.
- Spustiť tento kód a dostanete stĺpce so záhlavím zoradené vzostupne .
4. Makro na triedenie údajov dvojitým kliknutím na záhlavie v programe Excel
Ak chcete údaje jednoducho zoradiť podľa dvojité kliknutie na záhlavie , môžete to urobiť pomocou VBA kód.
Kroky:
- Kliknite pravým tlačidlom myši na stránku na karta listu .
- V zobrazenom zozname možností kliknite na Zobraziť kód .
- Zobrazí sa okno kódu, do ktorého skopírujte a vložte nasledujúci kód.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim iRange As Range Dim iCount As Integer iCount = Range("B4:D15").Columns.Count Cancel = False If Target.Row = 4 And Target.Column <= iCount Then Cancel = True Set iRange = Range(Target.Address) Range("B4:D15").Sort Key1:=iRange, Header:=xlYes End If End Sub
- Uložiť kód.
- Teraz sa vráťte na pracovný list, ktorý vás zaujíma, a ak dvakrát kliknite na záhlavie uvidíte, že sa stĺpce reorganizujú.
Prečítajte si viac: Ako triediť a filtrovať údaje v programe Excel (kompletný návod)
Čo si treba zapamätať
- Môžete vytvoriť pomenovaný rozsah a použiť ho namiesto toho, keď odovzdávate rozsah odkazov na bunky vo vnútri Triediť Napríklad, ak chcete zoradiť rozsah A1:A10 , namiesto toho, aby ste ho odovzdávali zakaždým vo vnútri kódu, môžete vytvoriť jeho pomenovaný rozsah, ako napríklad " SortRange " a použite ho s Range.Sort metóda ako Rozsah("SortRange") .
- Ak si nie ste istí, či váš súbor údajov má alebo nemá hlavičky, môžete to nechať určiť systém pomocou príkazu xlHádajte parameter.
Záver
Tento článok vám ukázal, ako zoradiť stĺpec v programe Excel VBA . dúfam, že tento článok bol pre vás veľmi prínosný. Ak máte akékoľvek otázky týkajúce sa tejto témy, neváhajte sa opýtať.