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

  • Sdílet Toto
Hugh West

Implementace Makro VBA je nejefektivnější, nejrychlejší a nejbezpečnější metodou pro spuštění jakékoli operace v aplikaci Excel. V tomto článku vám ukážeme, jak na to. seřadit tabulku v aplikaci Excel pomocí VBA .

Stáhnout pracovní sešit

Bezplatný cvičný sešit aplikace Excel si můžete stáhnout zde.

Třídění tabulky pomocí VBA.xlsm

Co je třeba vědět před implementací VBA pro třídění tabulky v aplikaci Excel

Existují některé parametry, které je třeba často používat při práci se systémem Třídit metoda VBA . Proto zde probereme některé parametry, abyste se s nimi při psaní kódu seznámili.

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í tabulky v aplikaci Excel

V této části se dozvíte, jak třídění tabulek aplikace Excel s ohledem na hodnota, barvy, ikony a více sloupců s VBA kód.

1. Vložení VBA pro řazení tabulky podle hodnoty v aplikaci Excel

Na následujícím příkladu seřadit tuto tabulku podle hodnot přítomné v Mark sloupce v sestupném pořadí.

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 SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub 

Váš kód je nyní připraven ke spuštění.

Zde,

  • SortTBL → Zadaný název tabulky.
  • SortTBL[Marks] -> Zadaný název sloupce tabulky, který se má seřadit.
  • Key1:=iColumn → Zadejte rozsah sloupců, aby kód věděl, který sloupec v tabulce má seřadit.
  • Order1:=xlDescending → Zadáno pořadí jako xlSestupně pro seřazení sloupce v sestupném pořadí. Pokud chcete sloupec seřadit vzestupně, napište. xlAcending místo toho.
  • Záhlaví:= xlYes → Protože sloupec v této tabulce má záhlaví, zadali jsme ho pomocí příkazu xlYes 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 sloupec ve vaší tabulce je nyní seřazeno sestupně .

Další informace: Jak seřadit data podle hodnoty v aplikaci Excel (5 snadných metod)

2. Vložení makra VBA pro třídění tabulky pro více sloupců

Můžete také seřadit tabulku pro více sloupců v aplikaci Excel pomocí VBA makro.

Z výše uvedené tabulky seřadíme sloupce. Název a Oddělení ve vzestupném pořadí.

Kroky:

  • Stejný způsob jako dříve, otevřít 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 SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Department]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub 

Váš kód je nyní připraven ke spuštění.

Zde,

  • TableValue → Zadaný název tabulky.
  • TableValue[Name] -> Zadaný název prvního sloupce tabulky, který se má seřadit.
  • TableValue[Department] -> Zadaný název druhého sloupce tabulky, který se má seřadit.
  • Key1:=iColumn1 → Zadejte rozsah sloupců, aby kód věděl, že je třeba seřadit první sloupec v tabulce.
  • Key1:=iColumn2 → Zadejte rozsah sloupců, aby kód věděl, že je třeba seřadit druhý sloupec v tabulce.
  • Order1:=xlAscending → Zadáno pořadí jako xlAcending pro seřazení sloupce v sestupném pořadí. Pokud chcete sloupec seřadit sestupně, pak napište xlSestupně místo toho.
  • Záhlaví:= xlYes → Protože sloupce této tabulky mají záhlaví, zadali jsme je pomocí příkazu xlYes možnost.

  • Spustit tento kód a získáte oba sloupce tabulky seřazené ve vzestupném pořadí.

Přečtěte si více: Jak automaticky třídit více sloupců v aplikaci Excel (3 způsoby)

Podobná čtení

  • Jak řadit jedinečný seznam v aplikaci Excel (10 užitečných metod)
  • Řazení pole pomocí Excel VBA (vzestupně i sestupně)
  • Jak třídit a filtrovat data v aplikaci Excel (kompletní návod)
  • Automatické třídění aplikace Excel při změně dat (9 příkladů)
  • Náhodné třídění v aplikaci Excel (vzorce + VBA)

3. Implementace makra pro řazení tabulky podle barvy buněk v aplikaci Excel

Můžete také seřadit tabulku podle barvy buňky které obsahuje.

Na příkladu výše uvedené tabulky si ukážeme, jak ji seřadit podle barev, které tato tabulka obsahuje.

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 SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(255, 217, 102) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180, 198, 231) .Header = xlYes .Apply End With End Sub 

Váš kód je nyní připraven ke spuštění.

Zde se RGB kódy, které jsme poskytli, můžete najít nebo jiné RGB požadovaný kód podle níže uvedeného gifu.

  • Stačí kliknout na barevná buňka .
  • V Home klikněte na kartu šipka vedle Barva výplně pak vyberte Více barev Uvidíte. RGB kódy v Vlastní karta se objevila Barvy vyskakovacího okna.

  • Spusťte tento kód a vaše tabulka bude seřazeno podle barev .

Přečtěte si více: Jak třídit podle barvy v aplikaci Excel (4 kritéria)

4. Použití VBA pro řazení tabulky aplikace Excel podle ikony

Předpokládejme, že tabulka datového souboru má ikony pro lepší čitelnost. Můžete seřadit tabulka založená na ikonách v aplikaci Excel pomocí VBA makro.

Podívejte se na výše uvedený soubor dat. Zde jsou v tabulce vedle číselných hodnot uvedeny ikony. Marks sloupce, abychom mohli pochopit, který žák má dobré, špatné nebo průměrné výsledky.

Všimněte si, že pokud nevíte, jak vložit ikonu do buňky, můžete to jednoduše provést pomocí příkazu Podmíněné formátování v aplikaci Excel.

  • Vyberte celý rozsah nebo sloupec.
  • Přejít na Podmíněné formátování -> Sady ikon . Poté si z nabízených možností vyberte libovolné sady ikon.

Kroky k seřadit tabulku na základě ikon jsou uvedeny níže.

Kroky:

  • Otevřít 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 SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(2)   .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3)   .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(4)   .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub 

Váš kód je nyní připraven ke spuštění.

Zde,

  • xl5Arrows -> Vybrali jsme sada 5 šipek z možnosti v Podmíněné formátování .
  • Položka (1) -> Určeno první typ ikony šipky.
  • Položka (2) -> Určeno druhý typ ikony šipky.
  • Položka (3) -> Určeno třetí typ ikony šipky.
  • Položka (4) -> Určeno čtvrtý typ ikony šipky.
  • Položka (5) -> Určeno pátý typ ikony šipky.

  • Spustit tento kód a tabulka bude seřazeno podle ikon .

Další informace: Jak automaticky seřadit tabulku v aplikaci Excel (5 metod)

Závěr

Tento článek vám ukázal, jak seřadit tabulku v aplikaci Excel VBA . doufám, že pro vás byl tento článek velmi přínosný. Pokud máte k tématu nějaké dotazy, neváhejte se zeptat.

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.