Obsah
Třídění v aplikaci Excel pomocí VBA , je třeba použít Range.Sort V tomto článku vám ukážeme, jak. seřadit sloupec v aplikaci Excel pomocí Range.Sort metoda VBA .
Stáhnout pracovní sešit
Bezplatný cvičný sešit aplikace Excel si můžete stáhnout zde.
Třídění sloupců pomocí VBA.xlsm
Metoda Range.Sort v aplikaci Excel VBA
Range.Sort metoda v VBA třídí rozsah hodnot v aplikaci Excel. Zde Rozsah je objektová proměnná, která určuje rozsah buněk, které chceme zobrazit. seřadit vzestupně nebo sestupně.
Níže jsou uvedeny parametry, které je třeba znát při práci s touto metodou.
Parametr | Povinné/nepovinné | Typ dat | Popis |
---|---|---|---|
Klíč | Volitelně | Varianta | Určuje rozsah nebo sloupec, jehož hodnoty mají být seřazeny. |
Objednávka | Volitelně | XlSortOrder | Určuje pořadí, v jakém bude třídění provedeno.
|
Záhlaví | Volitelně | XlYesNoGuess | Určuje, zda první řádek obsahuje záhlaví, nebo ne.
|
4 metody implementace VBA pro třídění sloupců v aplikaci Excel
V této části se dozvíte, jak seřadit jeden sloupec se záhlavím a bez záhlaví. , více sloupců se záhlavími a bez nich a jak řazení pouhým poklepáním na záhlaví sloupce. v aplikaci Excel.
1. Vložení VBA pro řazení jednoho sloupce bez záhlaví v aplikaci Excel
Pokud chcete seřadit jeden sloupec v pracovním listu aplikace Excel pomocí VBA kód a poté postupujte podle následujících kroků.
Toto je náš sloupec, který budeme třídit pomocí VBA kód.
Kroky:
- Tisk Alt + F11 na klávesnici nebo přejděte na kartu Vývojář -> Visual Basic otevřít Editor jazyka Visual Basic .
- Ve vyskakovacím okně kódu klikněte na panelu nabídek na možnost Insert -> Modul .
- Zkopírujte následující kód a vložte jej do okna kódu.
Sub SortSingleColumnWithoutHeader() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Váš kód je nyní připraven ke spuštění.
Zde,
- Key1:=Range("B5") → Určeno B5 aby kód věděl, který sloupec má řadit.
- Order1:=xlAscending → Zadáno pořadí jako xlAcending pro seřazení sloupce vzestupně. Pokud chcete sloupec seřadit sestupně, napište. xlSestupně místo toho.
- Záhlaví:= xlNo → Protože náš sloupec nemá žádné záhlaví, zadali jsme ho pomocí příkazu xlNo možnost.
- Tisk F5 na klávesnici nebo na panelu nabídek vyberte možnost Run -> Run Sub/UserForm . Můžete také kliknout na malá ikona Play na panelu podnabídek spustíte makro.
Uvidíte, že váš sloupec je nyní seřazeno vzestupně .
Všimněte si, že zde jsme rozsah dat definovali ručně jako Rozsah("B5:B15") .
Pokud chcete měnit data přidáním nebo odstraněním hodnot, můžete implementovat následující kód, který se automaticky aktualizuje na základě buněk v datové sadě.
Sub SortSingleColumnWithoutHeader() Range("B5", Range("B5").End(xlDown)).Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Všimněte si, že namísto ručního definování rozsahu pomocí Rozsah("B5:B15") , jsme napsali, Rozsah( "B5", Range("B5"). End(xlDown)) .
Tím se sloupec setřídí podle poslední postupně vyplněné buňky. Pokud jsou buňky prázdné, budou data brána v úvahu pouze do první prázdné buňky.
Další informace: Třídění tabulky v Excelu pomocí VBA (4 metody)
2. Vložení makra VBA pro třídění jednoho sloupce se záhlavím
V předchozí části jsme měli datovou sadu s jedním sloupcem bez záhlaví, ale nyní máme k dispozici a sloupec se záhlavím .
Tentokrát se naučíme, jak je třídit pomocí Makro VBA .
Kroky:
- Stejným způsobem jako dříve, otevřete Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- V okně kódu zkopírujte a vložte následující kód.
Sub SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub
Váš kód je nyní připraven ke spuštění.
Zde,
- Key1:=Range("B5") → Určeno B5 aby kód věděl, který sloupec má řadit.
- Order1:=xlDescending → Tentokrát seřadíme sloupec sestupně, takže zadáme pořadí jako xlSestupně .
- Záhlaví:= xlYes → Protože náš sloupec má tentokrát záhlaví, zadali jsme ho pomocí příkazu xlYes možnost.
- Spustit tento kód a získáte sloupec se záhlavím seřazeným sestupně .
Přečtěte si více: Jak třídit ListBox pomocí VBA v aplikaci Excel (kompletní průvodce)
Podobné čtení:
- Jak třídit IP adresy v aplikaci Excel (6 metod)
- [Vyřešeno!] Nefunguje třídění aplikace Excel (2 řešení)
- Jak přidat tlačítko třídění v aplikaci Excel (7 metod)
- Řazení rozsahu pomocí VBA v aplikaci Excel (6 příkladů)
- Jak řadit podle názvu v aplikaci Excel (3 příklady)
3. Makro VBA pro řazení více sloupců se záhlavím nebo bez něj
Můžete také seřadit více sloupců v datové sadě pomocí kódu VBA.
Kroky:
- Jak již bylo ukázáno dříve, otevřené Editor jazyka Visual Basic z Vývojář karta a Vložte a Modul v okně kódu.
- V okně kódu zkopírujte a vložte následující kód.
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 nyní připraven ke spuštění.
Zde,
.SortFields.Add Klíč:=Range("B4"), Pořadí:=xlAscending
.SortFields.Add Klíč:=Range("C4"), Pořadí:=xlAscending
Těmito dvěma řádky definujeme Buňka B4 a C4 třídit dva sloupce s nimi spojené na adrese vzestupné pořadí .
Protože máme v našem datovém souboru hlavičky, zadali jsme. Záhlaví = xlYes , jinak bychom napsali Záhlaví = xlNo uvnitř kódu.
- Spustit tento kód a získáte sloupce se záhlavím seřazené vzestupně .
4. Makro pro třídění dat dvojitým kliknutím na záhlaví v aplikaci Excel
Pokud chcete data snadno třídit pouze pomocí dvojklik na záhlaví , můžete to udělat pomocí VBA kód.
Kroky:
- Klikněte pravým tlačítkem myši na na karta listu .
- V zobrazeném seznamu možností klikněte na Zobrazit kód .
- Zobrazí se okno s kódem, do kterého zkopírujte a vložte následující 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žit kód.
- Nyní se vraťte na pracovní list, který vás zajímá, a pokud jste dvakrát klikněte na záhlaví uvidíte, že se sloupce přeuspořádávají.
Další informace: Jak třídit a filtrovat data v aplikaci Excel (kompletní návod)
Na co nezapomenout
- Můžete vytvořit pojmenovaný rozsah a použít jej místo toho, když předáváte rozsah odkazů na buňky uvnitř příkazu Třídit Pokud například chcete seřadit rozsah A1:A10 , místo abyste jej pokaždé předávali uvnitř kódu, můžete vytvořit jeho pojmenovaný rozsah, například " SortRange " a použijte ji s Range.Sort metoda jako Range("SortRange") .
- Pokud si nejste jisti, zda má váš datový soubor hlavičky, můžete to nechat určit systém pomocí příkazu xlHádejte parametr.
Závěr
Tento článek vám ukázal, jak seřadit sloupec v aplikaci Excel VBA . doufám, že pro vás byl tento článek velmi přínosný. Neváhejte se zeptat, pokud máte k tématu nějaké dotazy.