Seřadit listy v sešitu pomocí jazyka VBA v aplikaci Microsoft Excel

Anonim

V tomto článku jsme poskytli podrobnosti o tom, jak seřadit listy v sešitu ve vzestupném nebo sestupném pořadí, v závislosti na názvu listu.

V přiloženém sešitu jsou dva moduly:-

Modul 1 obsahuje makro „SortWorksheets“, které je přiřazeno k tlačítku „Odeslat“ na listu „Makro“.

Toto makro třídí všechny listy kromě prvního listu, který je hlavním listem pojmenovaným jako „Makro“.

Když uživatel klikne na tlačítko „Odeslat“, všechny listy za listem „Makro“ budou seřazeny vzestupně nebo sestupně podle výběru uživatele v poli se seznamem.

Modul 2 obsahuje dvě makra „AscendingSortOfWorksheets“ a „DecendingSortOfWorksheets“. Při spuštění makra „AscendingSortOfWorksheets“ seřadí všechny listy přítomné v sešitu ve vzestupném pořadí. Při spuštění makra „DecendingSortOfWorksheets“ třídí všechny pracovní listy přítomné v sešitu sestupně.

Logické vysvětlení

Algoritmus třídění bublin se používá pro třídění listů v sešitu.

Algoritmus třídění bublin porovnává každou položku v poli s jinou položkou v poli a prohodí je podle toho, zda má řadit vzestupně nebo sestupně. V každém kroku bude bublinovat nejmenší nebo největší hodnota na začátek pole. Algoritmus se opakuje, dokud nejsou všechny položky seřazeny.

V tomto článku je naším cílem seřadit listy v sešitu podle jejich názvu. Sešit, který používáme, se skládá z různých pracovních listů s názvy jako Financial Dashboard, Human Resources a Sales Dashboard.

K dosažení tohoto cíle jsme pro třídění listů použili algoritmus Bubble sort.

Vysvětlení kódu

Makro SortWorksheets

Toto makro se spustí, když uživatel klikne na tlačítko Odeslat. Toto makro seřadí všechny listy v sešitu podle jejich názvů kromě prvního listu v sešitu. V závislosti na hodnotě vybrané uživatelem v poli se seznamem seřadí listy ve vzestupném nebo sestupném pořadí.

Při přidávání pole se seznamem postupujte podle následujících kroků:-

  1. Přejděte na kartu Vývojář> Klikněte na Vložit> Klikněte na ikonu pole se seznamem pod ovládacím prvkem formuláře

  1. Klikněte pravým tlačítkem na pole se seznamem a klikněte na ovládání formátu.

  1. Přejděte na ovládací kartu, přiřaďte položku a propojte pole se seznamem s buňkou XFC1.

ComboBoxValue = Rozsah ("XFC1"). Hodnota

Kombinační pole na listu „Makro“ je propojeno s buňkou XFC1. Pro získání hodnoty z buňky XFC1 se tedy používá proměnná ComboBoxValue.

Pro i = 2 do SCount - 1

Smyčka FOR začíná proměnnou i, hodnota začíná od 2, protože chceme vyloučit první list sešitu z třídění.

Pokud ComboBoxValue = 1 Potom

IF podmínka se používá ke kontrole, zda se má řadit vzestupně nebo sestupně. Pokud je hodnota ComboBoxValue 1, pak seřaďte vzestupně, jinak sestupně.

Pracovní listy seřazené vzestupně

Pracovní listy seřazené sestupně

AscendingSortOfWorksheets a DecendingSortOfWorksheets

Makra AscendingSortOfWorksheets a DecendingSortOfWorksheets lze spustit stisknutím klávesové zkratky Alt + F8 nebo Přejít na kartu Vývojář> Klikněte na makro> vyberte makro a klikněte na spustit. Seřadí všechny pracovní listy přítomné uvnitř sešitu. Tato makra lze spustit i na jiných sešitech.

Listy seřazené po spuštění makra AscendingSortOfWorksheets

Pracovní listy seřazené vzestupně Makro DecendingSortOfWorksheets

Pro kód prosím postupujte níže

 Sub AscendingSortOfWorksheets () 'Seřadit pracovní listy v sešitu ve vzestupném pořadí Dim SCount, i, j As Integer' Pro deaktivaci aktualizací obrazovky Application.ScreenUpdating = False 'Získání celkového počtu. pracovních listů v sešitu SCount = pracovní listy.Count 'Kontrola podmínky, zda je počet pracovních listů větší než 1, pokud je počet jeden, ukončete proceduru Pokud SCount = 1, pak ukončete dílčí' Použití bublinového řazení jako algoritmu řazení 'Procházení všemi listy For i = 1 To SCount - 1 'Porovnání vybraného názvu listu s jinými listy pro přesun vybraného listu na příslušnou pozici Pro j = i + 1 To SCount If listy (j) .Name  Pracovní listy (i). Pojmenujte pak pracovní listy (j). Přesunout před: = Pracovní listy (i) Končit Pokud další j Další i Končit Sub 

Pokud se vám tento blog líbil, sdílejte ho se svými přáteli na Facebooku. Také nás můžete sledovat na Twitteru a Facebooku.

Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit naši práci a zlepšit ji pro vás. Napište nám na e -mail