Jak třídit listy v aplikaci Excel pomocí VBA (abecedně)

Pokud pracujete se spoustou pracovních listů v aplikaci Excel, věděli byste, že jejich správa může být problémem.

Jakmile máte více než pár pracovních listů, musíte je uspořádat ručně.

Jak snadné by to bylo, kdyby existoval způsob, jak rychle seřadit listy v aplikaci Excel.

I když neexistuje žádný způsob vestavěných funkcí, lze to provést (snadno) pomocí VBA.

V tomto tutoriálu vám poskytnu kód a přesné kroky, které musíte dodržet při řazení listů v aplikaci Excel.

Chcete -li seřadit listy ve vzestupném nebo sestupném pořadí, můžete kód upravit.

Kód VBA pro třídění pracovních listů v aplikaci Excel

Níže je kód, který seřadí listy v abecedním pořadí, jakmile jej spustíte.

Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If UCase (Sheets (j). Název) <UCase (Sheets (i) .Name) Then Sheets (j). Move before: = Sheets (i) End If Next j Next i Application.ScreenUpdating = True End Sub

Výše uvedený je jednoduchý kód, který používá smyčky For Next k analýze každého listu proti všem listům.

Porovná název listu se všemi listy a přesune jej podle názvu v abecedním pořadí.

Poté se přesune na další list a poté jej porovná se všemi listy.

Tento postup se opakuje u všech pracovních listů a konečným výsledkem je pořadí pracovního listu seřazené podle abecedy.

Několik důležitých věcí, které byste o tomto kódu měli vědět:

  1. Funkce UCase slouží k zajištění toho, aby se s malými a velkými písmeny nezacházelo odlišně.
  2. Hodnota Application.ScreenUpdating je na začátku kódu nastavena na hodnotu False a na konci kódu je změněna na True. Tím je zajištěno, že když je kód spuštěn, nevidíte, že se to děje na obrazovce. To také pomáhá urychlit provádění kódu.

Pokud chcete seřadit listy v sestupném pořadí, stačí změnit znaménko (větší než).

Níže uvedený kód by seřadil listy v sestupném pořadí:

`` Tento kód seřadí listy podle abecedy Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If UCase (Sheets (j) .Name)> UCase (Sheets (i) .Name) Then Sheets (j). Move before: = Sheets (i) End If Next j Next i Application.ScreenUpdating = True End Sub

Uživateli můžete také dát možnost vybrat si, zda chce řadit vzestupně/sestupně.

Níže uvedený kód by zobrazil okno se zprávou a uživatel může vybrat pořadí, které má seřadit.

Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer Dim SortOrder As VbMsgBoxResult SortOrder = MsgBox ("Select Yes for Ascending Order and No for Descending Order", vbYesNoCets) Shc i = 1 To ShCount - 1 For j = i + 1 To ShCount If SortOrder = vbYes Then If UCase (Sheets (j) .Name) UCase (Sheets (i) .Name) Then Sheets (j). Move into: = Sheets (i) End If End If Next j Next i Application.ScreenUpdating = True End Sub

Výše uvedený kód při spuštění zobrazuje zprávu, jak je uvedeno níže. Řadí se na základě výběru (Ano pro vzestupně a Ne pro sestupně).

Pokud kliknete na Storno, kód se zastaví a nic se nestane.

Poznámka: Třídění nelze vrátit zpět. V případě, že chcete zachovat i původní objednávku, vytvořte si kopii sešitu.

Slovo opatrnosti: Výše ​​uvedený kód funguje ve většině případů. Jednou z oblastí, kde vám to poskytne špatný výsledek, je, když máte názvy karet, jako jsou Q12021-2022, Q22021-2022, Q12021-2022, Q22021-2022. V ideálním případě byste chtěli, aby byly všechny karty za stejné roky pohromadě, ale nebude to provedeno, protože Q12021-2022 bude umístěno před Q22021-2022.

Kam vložit kód VBA

Excel má VBA backend nazvaný VBA editor.

Musíte zkopírovat a vložit kód VBA do okna kódu modulu VB Editor.

Zde jsou kroky, jak toho dosáhnout:

  1. Klikněte na kartu „Vývojář“. (Nevidíte kartu vývojáře? Kliknutím sem se dozvíte, jak ji získat).
  2. Klikněte na možnost Visual Basic. Tím se otevře editor VB v backendu.
  3. V podokně Průzkumník projektů v editoru VB klikněte pravým tlačítkem na libovolný objekt sešitu, do kterého chcete vložit kód. (Pokud nevidíte Průzkumníka projektů, přejděte na kartu „Zobrazit“ a klikněte na „Průzkumník projektů“.)
  4. Přejděte na Vložit a klikněte na Modul. Tím se vloží objekt modulu pro váš sešit.
  5. Zkopírujte a vložte kód do okna modulu.

Jak spustit kód VBA

V aplikaci Excel existují různé způsoby, jak spustit kód VBA.

Kód můžete spustit přímo z editoru jazyka (také nazývaného editor VB).

Do listu můžete vložit tlačítko nebo tvar a přiřadit mu k tomu makro. Když kliknete na tlačítko, makro se spustí okamžitě.

Makro můžete také přidat na panel nástrojů Rychlý přístup (QAT). Kdykoli budete muset seřadit karty listu, stačí kliknout na ikonu kódu makra v QAT.

Vše o spuštění makra si můžete přečíst zde - Jak spustit makro v Excelu (nebo se podívejte na video níže).
Také by se vám mohly líbit následující výukové programy Excel/VBA:

  • Jak třídit data v aplikaci Excel pomocí VBA.
  • Automaticky třídit data v abecedním pořadí pomocí vzorce.
  • Jak provést třístupňové třídění dat v aplikaci Excel.
  • Úvod do možností třídění dat v Excelu.
  • Excel VBA Autofilter: Kompletní průvodce s příklady
  • Jak seskupit pracovní listy v aplikaci Excel
  • Jak převrátit data v aplikaci Excel

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave