VBA Protect / Unprotect Munkalapok

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

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave