Obsah
Tento návod ukazuje, jak můžete rychle seřadit listy aplikace Excel v abecedním pořadí pomocí kódu VBA a nástroje Správce sešitů.
Microsoft Excel nabízí řadu rychlých a snadných způsobů, jak seřadit sloupce nebo řádky v abecedním pořadí. Existuje však pouze jeden způsob, jak v Excelu změnit uspořádání listů - přetáhnout je na požadovanou pozici na pásu karet listu. Pokud jde o seřazení karet podle abecedy v opravdu velkém sešitě, může to být zdlouhavá a chybná cesta. Hledáte časově úspornou alternativu? Existují pouze dvě: kód VBA.nebo nástroje třetích stran.
Jak abecedně seřadit karty v aplikaci Excel pomocí VBA
Níže naleznete tři příklady kódu VBA pro seřazení listů aplikace Excel vzestupně, sestupně a v obou směrech podle volby uživatele.
Předpokládáme, že máte určité zkušenosti s VBA, a proto vám nastíníme pouze základní kroky pro přidání makra do pracovního listu:
- V sešitě aplikace Excel otevřete stisknutím kláves Alt + F11 editor jazyka Visual Basic.
- V levém podokně klikněte pravým tlačítkem myši na ThisWorkbook a poté klikněte na tlačítko Vložte > Modul .
- Vložte kód VBA do okna Kód.
- Stisknutím klávesy F5 makro spustíte.
Podrobné pokyny krok za krokem naleznete v části Jak vložit a spustit kód VBA v aplikaci Excel.
Tip: Pokud chcete makro uchovat pro další použití, nezapomeňte soubor uložit jako sešit aplikace Excel s podporou maker (.xlsm).
Případně si můžete stáhnout náš ukázkový sešit Abeceda karet aplikace Excel, na výzvu povolit obsah a spustit požadované makro přímo z něj. Sešit obsahuje následující makra:
- TabsAscending - seřadit listy podle abecedy od A do Z.
- TabsDescending - seřaďte listy v opačném pořadí, od Z k A.
- AlphabetizeTabs - seřadit karty listu v obou směrech, vzestupně nebo sestupně.
Po stažení vzorového sešitu a jeho otevření v aplikaci Excel otevřete vlastní sešit, ve kterém chcete seřadit karty podle abecedy, stiskněte klávesy Alt + F8 , vyberte požadované makro a klikněte na tlačítko . Spustit .
Abecední řazení karet aplikace Excel od A do Z
Toto malé makro uspořádá listy v aktuálním sešitě do následujícího pořadí vzestupné alfanumerické pořadí , nejprve pracovní listy, jejichž názvy začínají čísly, a poté listy od A do Z.
Sub TabsAscending() For i = 1 To Application.Sheets.Count For j = 1 To Application.Sheets.Count - 1 If UCase$(Application.Sheets(j).Name)> UCase$(Application.Sheets(j + 1).Name) Then Sheets(j).Move after:=Sheets(j + 1) End If Next Next MsgBox "Karty byly seřazeny od A do Z." End SubUspořádání karet aplikace Excel od Z do A
Pokud chcete seřadit listy v sestupné abecedně-číselné pořadí (Z až A, pak listy s číselnými názvy), pak použijte následující kód:
Sub TabsDescending() For i = 1 To Application.Sheets.Count For j = 1 To Application.Sheets.Count - 1 If UCase$(Application.Sheets(j).Name) <UCase$(Application.Sheets(j + 1).Name) Then Application.Sheets(j).Move after:=Application.Sheets(j + 1) End If Next Next MsgBox "Karty byly seřazeny od Z po A." End SubSeřazení karet podle abecedy vzestupně nebo sestupně
Toto makro umožňuje uživatelům rozhodnout, jakým způsobem se mají seřadit listy v daném sešitě, a to abecedně od A do Z nebo v opačném pořadí.
Protože standardní dialogové okno (MsgBox) v Excelu VBA umožňuje pouze výběr z několika předdefinovaných tlačítek, vytvoříme si vlastní formulář (UserForm) se třemi vlastními tlačítky: Od A do Z , Z do A a Zrušit .
Za tímto účelem otevřete editor jazyka Visual Basic, klikněte pravým tlačítkem myši na položku ThisWorkbook a klikněte na tlačítko Vložte > Uživatelský formulář . Pojmenujte svůj formulář SortOrderFrom a přidejte k němu 4 ovládací prvky: popisek a tři tlačítka:
Poté stiskněte klávesu F7 (nebo dvakrát klikněte na formulář) a otevřete formulář. Kód a vložte do něj níže uvedený kód. Kód zachytí kliknutí na tlačítko a každému tlačítku přiřadí jedinečnou značku:
Private Sub CommandButton1_Click() Me.Tag = 1 Me.Hide End Sub Private Sub CommandButton2_Click() Me.Tag = 2 Me.Hide End Sub Private Sub CommandButton3_Click() Me.Tag = 0 Me.Hide End SubV závislosti na tom, zda uživatel klikne na tlačítko Od A do Z nebo Z do A na formuláři, seřadit karty vzestupně podle abecedy (zvoleno ve výchozím nastavení) nebo sestupně podle abecedy; nebo zavřít formulář a nedělat nic v případě Zrušit . K tomu slouží následující kód VBA, který se vkládá obvyklým způsobem prostřednictvím položky Vložte > Modul .
Sub AlphabetizeTabs() Dim SortOrder As Integer SortOrder = showUserForm If SortOrder = 0 Then Exit Sub For x = 1 To Application.Sheets.Count For y = 1 To Application.Sheets.Count - 1 If SortOrder = 1 Then If UCase$(Application.Sheets(y).Name)> UCase$(Application.Sheets(y + 1).Name) Then Sheets(y).Move after:=Sheets(y + 1) End If ElseIf SortOrder = 2 Then If UCase$(Application.Sheets(y).Name)<UCase$(Application.Sheets(y + 1).Name) Then Sheets(y).Move after:=Sheets(y + 1) End If End If Next Next End Sub Function showUserForm() As Integer showUserForm = 0 Load SortOrderForm SortOrderForm.Show (1) showUserForm = SortOrderForm.Tag Unload SortOrderForm End FunctionPokud si s VBA ještě příliš nerozumíte, můžete si jednoduše stáhnout náš Vzorový sešit pro řazení karet podle abecedy, otevřít jej v aplikaci Excel vedle vlastního souboru, ve kterém chcete karty seřadit, a spustit příkaz AlphabetizeTabs makro ze sešitu:
Zvolte preferované pořadí řazení, například, Od A do Z a sledujte výsledky:
Tip: Pomocí VBA můžete také vytvářet kopie pracovních listů aplikace Excel. Kód je k dispozici zde: Jak duplikovat list v aplikaci Excel pomocí VBA.
Jak řadit karty aplikace Excel podle abecedy pomocí sady Ultimate Suite
Uživatelé naší sady Ultimate Suite pro Excel se nemusí zabývat VBA - mají k dispozici multifunkčního Správce sešitů:
S tímto nástrojem přidaným do pásu karet aplikace Excel lze karty seřadit podle abecedy jediným kliknutím na tlačítko, přesně tak, jak to má být!
Pokud máte zájem prozkoumat tyto a více než 70 dalších profesionálních nástrojů pro Excel, zkušební verzi naší sady Ultimate Suite si můžete stáhnout zde.
Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu!