Ez az oktatóanyag mindent megtanít az Excel -munkalap védelméről a VBA -ban - Hogyan lehet megvédeni vagy eltávolítani a munkalapokat az Excelben.
Az Excel munkalap védelmének feloldása jelszó nélkül
A jelszóval nem védett munkalap védelmének feloldásához használja ezt az egyszerű kódsorot:
1 | Munkalapok ("Sheet1"). Védelem feloldása |
Az Excel munkalap védelmének feloldása jelszóval
A jelszóval védett munkalap védelmének feloldásához meg kell adnia a jelszót is:
1 | Munkalapok ("Sheet1"). A "Jelszó" védelmének feloldása |
A lap védelmének feloldása - Elfelejtett jelszó
A munkalap védelmének feloldásához a jelszó ismerete nélkül jelszó-helyreállító bővítményt kell használnia.
Munkalapok védelme
A Munkalapvédelem lehetővé teszi, hogy zárolja a munkalap bizonyos aspektusait a szerkesztéstől.
Ez a menü megtalálható Kezdőlap> Formátum> Lap védelme vagy kattintson a jobb gombbal a Tábla lap nevére:
Leggyakrabban ezt használják a „Zárolt” cellák védelmére a szerkesztéstől, csak a végfelhasználónak lehetővé teszi bizonyos cellák szerkesztését.
A cellákat lezárhatja, ha kiválasztja őket, és megnyitja a Védelem fül a Cellaformázás menü (CTRL + 1).
Megakadályozhatja azt is, hogy a felhasználó megváltoztassa a munkalap szerkezetét (sorok és oszlopok beszúrása, törlése vagy átméretezése), illetve az AutoFilters funkcióval való interakciót és még sok mást.
Munkalap védelme - jelszó nélkül
Érdemes megvédeni a munkalapot jelszó megadása nélkül. Ez megakadályozza a munkalap véletlen módosítását, ugyanakkor hozzáférést biztosít a felhasználónak a kívánt változtatásokhoz.
1 | Munkalapok ("Sheet1") |
Munkalap védelme - Jelszavas védelem
1 | Munkalapok ("Sheet1"). Védje a "Jelszót" |
A munkalap beállításainak védelme
A fenti példák a szabványos védelmi beállításokkal védik a munkalapokat. Ehelyett érdemes személyre szabni a védett tartalmakat:
12345 | Feladatlapok ("Sheet1"). Jelszó védelme: = strPassword, DrawingObjects: = True, Contents: = True, Scenarios: = True, _UserInterfaceOnly: = Igaz, AllowFormattingCells: = False, AllowFormattingColumns: = False, _AllowFormattingRows: = False, AllowInsertingColumns: = False, AllowInsertingRows: = False, _AllowInsertingHyperlinks: = False, AllowDeletedColumns: = False, AllowDeletedRows: = False, _AllowSorting: = False, AllowFiltering: = False, AllowUsingPivotTables: = False |
A fenti szintaxis használata helyett azt javaslom, hogy rögzítsen egy makrót a kívánt beállításokkal (amelyet a fenti Munkalapvédelem menüvel választott ki), és másolja és illessze be a rögzített kódot az eljárásba.
Lap védelme - Engedélyezze a VBA számára a változtatásokat
Alapértelmezés szerint, amikor védi a lapot, a védelem a felhasználói műveleteken kívül a VBA -műveletekre is vonatkozik. Ha a VBA megpróbál módosítani egy lezárt cellát, akkor 1004 futásidejű hibát fog látni. Ennek elkerülése érdekében feloldhatja és újra védheti munkalapjait, amikor a VBA-nak interakcióba kell lépnie velük:
123456789 | Szerkesztés_lap1 ()„A lap védelmének megszüntetése1Munkalapok ("Sheet1"). Védelem feloldása„Tegyen valamit a lappal1„Védje a lapot 1Munkalapok ("Sheet1")End Sub |
Könnyű azonban elfelejteni a munkalapok védelmének feloldását és/vagy újbóli védelmét. Ez növelheti a kódolási hiba valószínűségét.
Ehelyett használhatja a UserInterFaceOnly beállítást. Ha IGAZ, akkor a munkalapok CSAK a felhasználóktól lesznek védve, NEM a VBA -tól.A VBA -kód szabadon szerkesztheti a munkalapot, akárcsak akkor, ha feloldották.
Két fontos pont a UserInterFaceOnly -ról:
- Ez a beállítás nem érhető el a Munkalap védelme menüből (fent látható). Ezt a beállítást meg kell határozni a VBA -ban.
- A beállítás nem kerül mentésre a munkafüzet bezárásakor. A munkafüzet minden megnyitásakor újra meg kell határozni.
Tehát a UserInterFaceOnly tulajdonság beállításához helyezze el a következő Workbook_Open esemény eljárást a ThisWorkbook modulban:
1234567 | Privát almunkafüzet_nyitva ()Dim ws munkalapkéntMinden egyes munkához ebben a munkakönyvben. Munkalapokws.Protect UserInterfaceOnly: = IgazKövetkező wsEnd Sub |
A Workbook_Open egy speciális esemény, amely a munkafüzet minden megnyitásakor fut. Ezt a ThisWorkbook modulba kell helyezni. Alternatív megoldásként használhatja az Auto_Open esemény eljárást (itt nem szerepel).
Minden lap makró védelmének feloldása
Ez a makró feloldja a munkafüzet összes lapjának védelmét:
123456789 | 'Védje fel az összes munkalapotSub UnProtectAllSheets ()Dim ws munkalapkéntMinden egyes munkalaphozws. A "jelszó" védelmének feloldásaKövetkező wsEnd Sub |
Minden lap védelme makró
Ez a makró védi a munkafüzet összes lapját:
123456789 | „Védje az összes munkalapotSub ProtectAllSheets ()Dim ws munkalapkéntMinden egyes munkalaphozws.Védje a "jelszót"Következő wsEnd Sub |