Zoraďte pracovné listy v zošite pomocou jazyka VBA v programe Microsoft Excel

Anonim

V tomto článku sme poskytli podrobnosti o spôsobe zoradenia pracovných hárkov v zošite vzostupne alebo zostupne v závislosti od názvu pracovného hárka.

V priloženom zošite sú dva moduly:-

Modul1 obsahuje makro „SortWorksheets“, ktoré je priradené k tlačidlu „Odoslať“ na liste „Makro“.

Toto makro triedi všetky pracovné hárky okrem prvého pracovného hárka, ktorý je hlavným hárkom s názvom „Makro“.

Keď používateľ klikne na tlačidlo „Odoslať“, všetky listy po hárku „Makro“ budú zoradené vzostupne alebo zostupne podľa výberu používateľa v poli so zoznamom.

Modul 2 obsahuje dve makrá „AscendingSortOfWorksheets“ a „DecendingSortOfWorksheets“. Keď je spustené makro „AscendingSortOfWorksheets“, zoradí všetky pracovné hárky prítomné v zošite vzostupne. Pri spustenom makre „DecendingSortOfWorksheets“ zoradí všetky pracovné hárky prítomné v zošite zostupne.

Logické vysvetlenie

Algoritmus triedenia bublín sa používa na triedenie pracovných hárkov v zošite.

Algoritmus zoradenia podľa bublín porovnáva každú položku v poli s inými položkami v poli a zamieňa ich podľa toho, či sa majú zoradiť vzostupne alebo zostupne. V každom kroku zablokuje najmenšiu alebo najväčšiu hodnotu na začiatku poľa. Algoritmus sa opakuje, kým nie sú všetky položky zoradené.

V tomto článku je naším cieľom zoradiť pracovné hárky v zošite podľa ich názvu. Pracovný zošit, ktorý používame, pozostáva z rôznych pracovných hárkov s názvami ako finančný informačný panel, ľudské zdroje a predajný informačný panel.

Na dosiahnutie tohto cieľa sme použili algoritmus triedenia bublín na triedenie pracovných hárkov.

Vysvetlenie kódu

Makro SortWorksheets

Toto makro sa spustí, keď používateľ klikne na tlačidlo Odoslať. Toto makro zoradí všetky pracovné hárky v zošite podľa ich názvov okrem prvého pracovného hárka v zošite. V závislosti od hodnoty zvolenej používateľom v poli so zoznamom zoradí pracovné listy vzostupne alebo zostupne.

Ak chcete pridať pole so zoznamom, postupujte podľa týchto krokov:-

  1. Prejdite na kartu Vývojár> Kliknite na položku Vložiť> Kliknite na ikonu kombinovaného poľa pod ovládacím prvkom formulára

  1. Kliknite pravým tlačidlom myši na kombinované pole a kliknite na ovládací prvok formátu.

  1. Prejdite na kartu Ovládanie, Priraďte položku a prepojte pole so zoznamom s bunkou XFC1.

ComboBoxValue = Rozsah ("XFC1"). Hodnota

Kombinované pole v pracovnom hárku „Makro“ je prepojené s bunkou XFC1. Na získanie hodnoty z bunky XFC1 sa teda používa premenná ComboBoxValue.

Pre i = 2 do SCount - 1

Slučka FOR začína premennou i, hodnota začínajúca od 2, pretože chceme vylúčiť prvý pracovný hárok zošita z triedenia.

Ak je ComboBoxValue = 1 Potom

Podmienka IF sa používa na kontrolu, či je zoradené vzostupne alebo zostupne. AK je hodnota ComboBoxValue 1, zoraďte ich vzostupne, inak zostupne.

Pracovné listy zoradené vzostupne

Pracovné listy zoradené zostupne

AscendingSortOfWorksheets a DecendingSortOfWorksheets

Makrá AscendingSortOfWorksheets a DecendingSortOfWorksheets je možné spustiť stlačením klávesovej skratky Alt + F8 alebo prejsť na kartu Vývojár> kliknúť na makro> vybrať makro a kliknúť na spustiť. Zoradia všetky pracovné hárky prítomné v zošite. Tieto makrá je možné spustiť aj v iných zošitoch.

Hárky zoradené po spustení makra AscendingSortOfWorksheets

Pracovné listy zoradené vzostupne v makre DecendingSortOfWorksheets

Pri kódovaní postupujte podľa nižšie uvedených pokynov

 Sub AscendingSortOfWorksheets () 'Zoradiť pracovné hárky v zošite vzostupne Dim SCount, i, j As Integer' Na deaktiváciu aktualizácií obrazovky Application.ScreenUpdating = False 'Získava sa celkom č. pracovných hárkov v zošite SCount = pracovné listy. Počítanie 'Kontrola podmienky, či je počet pracovných hárkov väčší ako 1, ak je počet jeden, potom ukončite postup, ak SCount = 1, potom ukončite podsekciu' Použitie bublinového zoradenia ako algoritmu triedenia 'Opakovanie všetkých pracovných hárkov pre i = 1 Na SCount - 1 'Porovnanie názvu vybraného hárka s inými listami na presun vybraného listu na príslušnú pozíciu Pre j = i + 1 Na SCount If pracovné listy (j). Názov  Pracovné listy (i). Pomenujte potom pracovné listy (j). Presunúť pred: = pracovné listy (i) Koniec ak ďalší j Ďalší i Koniec sub 

Ak sa vám tento blog páčil, zdieľajte ho so svojimi priateľmi na Facebooku. Môžete nás tiež sledovať na Twitteri a Facebooku.

Budeme radi, ak sa nám ozvete, dajte nám vedieť, ako môžeme zlepšiť našu prácu a zlepšiť ju pre vás. Napíšte nám na emailovú stránku