Třídění sloupců v aplikaci Excel pomocí VBA (4 metody)

  • Sdílet Toto
Hugh West

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.
  • xlAcending = Seřazení vzestupně.
  • xlSestupně = Seřazení sestupně.
Záhlaví Volitelně XlYesNoGuess Určuje, zda první řádek obsahuje záhlaví, nebo ne.
  • xlNo = Když sloupec nemá žádné záhlaví; Výchozí hodnota.
  • xlYes = Pokud mají sloupce záhlaví.
  • xlHádejte = Umožňuje aplikaci Excel určit záhlaví.

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.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.