Időnként előfordulhat, hogy az összes aktív munkalapot törölni szeretné egy Excel-munkafüzetben. Ilyen helyzetekben használhatja a következő makrót.
Hogyan működik a makró
A makró itt végigfut a munkalapokon, és minden munkalap nevét az aktív lap nevéhez illeszti. Minden alkalommal, amikor a makró ciklusokat hajt végre, törli a páratlan munkalapot. Vegye figyelembe a DisplayAlerts tulajdonság használatát a 4. lépésben. Ez hatékonyan kikapcsolja az Excel figyelmeztetéseit, így nem kell minden egyes törlést megerősítenie.
Almakró1()
'1. lépés: Deklarálja a változókat
Dim ws munkalapként
'2. lépés: Kezdje el végigfutni az összes munkalapot
For Every Ws In ThisWorkbook.Worksheets
'3. lépés: Ellenőrizze az egyes munkalapok nevét
Ha ws.Name <> ThisWorkbook.ActiveSheet.Name Akkor
'4. lépés: Kapcsolja ki a figyelmeztetéseket, és törölje
Application.DisplayAlerts = Hamis
ws.Delete
Application.DisplayAlerts = Igaz
Vége Ha
'5. lépés: Ugrás a következő munkalapra
Következő ws
Vége Sub
A makró először egy ws nevű objektumot deklarál. Ez a lépés egy memóriatárolót hoz létre minden egyes munkalaphoz, amelyen áthalad.
A 2. lépésben a makró ciklusba kezd, és közli az Excellel, hogy kiértékeli a munkafüzetben található összes munkalapot. Különbség van a ThisWorkbook és az ActiveWorkbook között. A ThisWorkBook objektum a kódot tartalmazó munkafüzetre hivatkozik. Az ActiveWorkBook objektum az éppen aktív munkafüzetre hivatkozik. Gyakran ugyanazt az objektumot adják vissza, de ha a kódot futtató munkafüzet nem az aktív munkafüzet, akkor különböző objektumokat adnak vissza. Ebben az esetben nem akarja megkockáztatni, hogy más munkafüzetekben lapokat töröljön, ezért használja a ThisWorkBook-ot.
A 3. lépésben a makró egyszerűen összehasonlítja az aktív lap nevét az éppen hurkolt lappal.
A 4. lépésben, ha a lapnevek eltérnek, a makró törli a lapot. Amint már említettük, a DisplayAlerts segítségével letilthatja az Excelből származó megerősítési ellenőrzéseket. Ha figyelmeztetést szeretne kapni a lapok törlése előtt, akkor kihagyhatja az Alkalmazást. DisplayAlerts = False. A DisplayAlerts utasítás elhagyása biztosítja, hogy megkapja az üzenetet, ami lehetővé teszi, hogy kilépjen a munkalapok törlésére vonatkozó döntésből.
Az 5. lépésben a makró visszatér a következő laphoz. Az összes lap kiértékelése után a makró véget ér.
A figyelmeztető üzenetek megtekintéséhez hagyja ki a DisplayAlerts utasítást.
Hogyan kell használni a makrót
A makró megvalósításához másolja és illessze be egy szabványos modulba:
Aktiválja a Visual Basic Editort az Alt+F11 megnyomásával.
Kattintson a jobb gombbal a projekt/munkafüzet nevére a projekt ablakában.
Válassza a Beszúrás → Modul menüpontot.
Írja be vagy illessze be a kódot az újonnan létrehozott modulba.
Ha a ThisWorkbookot használja az ActiveWorkbook helyett egy makróban, akkor a makrót nem tudja futtatni a személyes makró-munkafüzetből. Miért? Mivel a ThisWorkbook a személyes makró-munkafüzetre vonatkozik, nem arra a munkafüzetre, amelyre a makrót alkalmazni kell.