Niekedy možno budete chcieť odstrániť všetky pracovné hárky okrem aktívneho v zošite programu Excel. V týchto situáciách môžete použiť nasledujúce makro.
Ako funguje makro
Makro tu prechádza pracovnými hárkami a priraďuje názvy každého hárka k názvu aktívneho hárka. Zakaždým, keď sa makro zacyklí, odstráni všetky nezhodné pracovné hárky. Všimnite si použitie vlastnosti DisplayAlerts v kroku 4. Toto efektívne vypne upozornenia Excelu, takže nemusíte potvrdzovať každé odstránenie.
Pod makro1()
'Krok 1: Deklarujte svoje premenné
Dim ws As Worksheet
'Krok 2: Začnite prechádzať všetky pracovné hárky
Pre každé ws In ThisWorkbook.Worksheets
„Krok 3: Skontrolujte názov každého pracovného hárka
Ak ws.Name <> ThisWorkbook.ActiveSheet.Name Then
„Krok 4: Vypnite upozornenia a odstráňte ich
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
Koniec Ak
„Krok 5: Prejdite na ďalší pracovný hárok
Ďalšie ws
End Sub
Makro najskôr deklaruje objekt s názvom ws. Tento krok vytvorí pamäťový kontajner pre každý pracovný hárok, cez ktorý prechádza.
V kroku 2 sa makro začne zacykliť a oznámi Excelu, že vyhodnotí všetky pracovné hárky v tomto zošite. Medzi ThisWorkbook a ActiveWorkbook je rozdiel. Objekt ThisWorkBook odkazuje na zošit, ktorý obsahuje kód. Objekt ActiveWorkBook odkazuje na aktuálne aktívny zošit. Často vracajú rovnaký objekt, ale ak zošit s kódom nie je aktívnym zošitom, vrátia rôzne objekty. V tomto prípade nechcete riskovať vymazanie hárkov v iných zošitoch, preto použijete ThisWorkBook.
V kroku 3 makro jednoducho porovná názov aktívneho hárka s hárkom, ktorý je momentálne v slučke.
Ak sú názvy hárkov v kroku 4 odlišné, makro hárok vymaže. Ako už bolo spomenuté, DisplayAlerts používate na potlačenie akýchkoľvek kontrol potvrdení z Excelu. Ak chcete byť upozornení pred odstránením hárkov, môžete aplikáciu vynechať. DisplayAlerts = False. Vynechaním príkazu DisplayAlerts zaistíte, že sa vám zobrazí správa, čo vám umožní odstúpiť od rozhodnutia vymazať pracovné hárky.
V kroku 5 sa makro vráti späť, aby získalo ďalší hárok. Po vyhodnotení všetkých hárkov sa makro skončí.
Ak chcete zobraziť varovné správy, vynechajte vyhlásenie DisplayAlerts.
Ako používať makro
Ak chcete implementovať toto makro, môžete ho skopírovať a prilepiť do štandardného modulu:
Aktivujte Editor jazyka Visual Basic stlačením Alt+F11.
Kliknite pravým tlačidlom myši na názov projektu/zošita v okne projektu.
Vyberte Vložiť → Modul.
Zadajte alebo prilepte kód do novovytvoreného modulu.
Keď v makre použijete ThisWorkbook namiesto ActiveWorkbook, nemôžete spustiť makro z osobného zošita makier. prečo? Pretože ThisWorkbook by odkazoval na osobný zošit makier, nie na zošit, na ktorý by sa malo makro vzťahovať.