VBA UnProtect Sheet - Az VBA kód használatával távolítsa el az Excel lap védelmét

Excel VBA lap védtelenítése

Vannak olyan helyzetek, amikor megvédjük a munkalapjainkat, hogy megakadályozzuk, hogy a felhasználó manipulálja a munkalapokat. A munkalap védelme közben általában ugyanazt a jelszót használjuk. Ebben a cikkben megmutatjuk, hogyan lehet a lapot VBA kódolással védeni.

Példák

1. példa

A lap védtelenítése 99% -kal egyszerűbb, mint a védelem. Csak a jelszóra van szükségünk a munkalap védelmének megszüntetéséhez.

A legelső dolog, amit meg kell tennünk, meg kell említeni a munkalap nevét, amelyet nem fogunk védeni. Például, ha az „Értékesítési adatok” elnevezésű lap védettségét szeretné eltávolítani, akkor a VBA-kódjának ilyennek kell lennie.

Munkalapok („Értékesítési adatok”)

Ezután nyissa meg az Unprotect metódust.

Amint a fenti képen láthatjuk, nem látunk semmiféle IntelliSense listát, amely segíthetne bennünket. Ez megnehezíti a munkát, különösen az új tanuló számára.

Ennek leküzdésére általában arra számítok, hogy egy VBA változót „munkalapnak” deklarálok.

Kód:

Sub Unpretect_Example1 () Dim Ws mint munkalap vége

Most állítsa be a deklarált változót a megfelelő lapra.

Kód:

Sub Unpretect_Example1 () Dim Ws mint munkalapkészlet Ws = munkalapok ("Értékesítési adatok") End Sub

Most használjon változót a deklarált változó összes tulajdonságának és metódusának eléréséhez.

Amint a fenti képen látható, hozzáférhetünk az összes tulajdonsághoz és módszerhez. Válassza ki az „Unprotect” módszert az IntelliSense listából.

Jelszót kér a Sheet védelemhez. A jelszót „Excel @ 1234” -ként állítottam be, ezért a jelszót ugyanúgy megadom.

Ez megvédi az „Értékesítési adatok” nevű munkalapot.

Kód:

Sub Unpretect_Example1 () Dim Ws mint munkalapkészlet Ws = munkalapok ("Értékesítési adatok") Ws. Jelszó törlése: = "Excel @ 1234" End Sub

Ha nincs jelszó, akkor csak az „Unprotect” módszert kell használnunk, és figyelmen kívül kell hagynunk a „Password” paramétert.

Kód:

Sub Unpretect_Example1 () Dim Ws mint munkalapkészlet Ws = munkalapok ("Értékesítési adatok") 'Változtassa meg a munkalap nevét a Ws követelményeknek megfelelően. Unprotect' Ha nincs jelszó, adja át a "UnProtect" metódust End Sub

Ha van jelszó, akkor dupla idézőjelben kell megadnunk a jelszót. A jelszó megkülönbözteti a kis- és nagybetűket, ezért gondosan jegyezze meg őket.

2. példa - Az összes Excel-lap védettségének eltávolítása egyetlen kattintással

Láttuk, hogyan lehet megvédeni az adott munkalapot. Képzelje el, hogy sok munkalapja van, és az összes munkalap ugyanazzal a jelszóval védett, akkor nem tudjuk tovább írni az egyes munkalapok kódjait.

Ezekben az esetekben hurkokat kell használnunk, hogy végignézzük a munkalap objektum gyűjteményét, és könnyedén megvédjük őket.

Az alábbi kód végighúzza az összes munkalapot, és védelmet nyújt a munkalapon.

Kód:

Sub Unpretect_Example2 () Dim Ws mint munkalap minden egyes W-hez az ActiveWorkbook.Worksheets Ws.Unprotect jelszóval: = "Excel @ 1234" 'Változtassa meg a jelszót az előbb említettek szerint, miközben védi őket. Következő Ws End Sub

3. példa - Különleges helyzetek

1. szituáció: Valaha is elképzelte, hogy a mellékelt jelszó helytelen Ha a mellékelt jelszó téves, akkor az 1004: Futási idő hibát kapjuk .

Ezen hibák kezeléséhez használhatjuk az “On Error GoTo Label” opciót. Az alábbi kód példa erre.

Kód:

Sub Unpretect_Example3 () Dim Ws munkalapként az ActiveWorkbook minden egyes munkalapjához. Munkafüzetek bekapcsolva a GoTo hibás hibaüzenetek hibájába. Nem távolítsa el a jelszó védelmét: = "Excel @ 1234" 'Védje meg a jelszót, ahogyan említettük. Hibabejelentés: MsgBox "Hibás jelszó" Következő Ws End Sub

A fenti kód egy szép üzenetmezőt jelenít meg, amely azt mondja: „Helytelen jelszó”.

2. helyzet: Ha a lapot jelszó nélkül védik, és ha véletlenszerű jelszót ad meg, akkor is védelmet nyújt a munkalapon anélkül, hogy bármilyen hibát mutatna.

3. helyzet: Ha a lapot jelszó védi, de ha nem ad meg jelszót, akkor a VBA jelszó beviteli mezőként jelenik meg a jelszó megadásához.

A fenti beviteli mezőbe be kell írnunk a jelszót a munkalap védelme érdekében. Ha a Mégse gombra kattint, akkor az anélkül lép ki a VBA alfolyamatból, hogy bármit is megjelenítene, hacsak nincs felhasználói üzenet mező.

érdekes cikkek...