VBA UnProtect Sheet - Utilizați codul VBA pentru a proteja foaia Excel

Foaie de neprotejare Excel VBA

Există situații în care ne protejăm foile de lucru pentru a împiedica utilizatorul să manipuleze foile de lucru. În timp ce protejăm foaia de lucru, menținem de obicei aceeași parolă. În acest articol, vă vom arăta modalitatea de a proteja foaia folosind codarea VBA.

Exemple

Exemplul nr. 1

Neprotejarea foii este cu 99% mai simplă decât protejarea acestora. Avem nevoie doar de parolă pentru a ne proteja foaia de lucru.

Primul lucru pe care trebuie să-l facem este să menționăm numele foii de lucru pe care o vom proteja. De exemplu, dacă doriți să protejați foaia numită „Date de vânzare”, atunci codul dvs. VBA ar trebui să fie astfel.

Fișe de lucru („Date de vânzare”)

Apoi accesați metoda Unprotect.

După cum putem vedea în imaginea de mai sus, nu vedem niciun fel de listă IntelliSense care să ne ajute. Acest lucru face munca mai dificilă, în special pentru noul cursant.

Pentru a depăși acest lucru, mă bazez de obicei pe declararea unei variabile VBA ca „Foaie de lucru”.

Cod:

Sub Unpretect_Example1 () Dim Ws As Worksheet End Sub

Acum setați variabila declarată la foaia respectivă.

Cod:

Sub Unpretect_Example1 () Dim Ws Ca set de foi de lucru Ws = foi de lucru („Date de vânzări”) End Sub

Acum utilizați o variabilă pentru a accesa toate proprietățile și metodele variabilei declarate.

După cum puteți vedea în imaginea de mai sus, putem accesa toate proprietățile și metodele. Selectați metoda „Anulați protecția” din lista IntelliSense.

Solicită parola pentru a proteja foaia. Am setat parola ca „Excel @ 1234”, așa că voi furniza parola la fel.

Acest lucru va proteja foaia de lucru numită „Date de vânzare”.

Cod:

Sub Unpretect_Example1 () Dim Ws as Worksheet Set Ws = Worksheets ("Data Sales") Ws.Unprotect Password: = "Excel @ 1234" End Sub

Dacă nu există nicio parolă, trebuie doar să folosim metoda „Dezprotejare” și să ignorăm parametrul „Parolă”.

Cod:

Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") 'Schimbați numele foii de lucru conform cerinței dvs. Ws. Unprotect' Dacă nu există o parolă, treceți doar metoda „UnProtect” End Sub

Dacă există vreo parolă, trebuie să introducem parola în ghilimele duble. Parola este sensibilă la majuscule și minuscule, așa că rețineți-le cu atenție.

Exemplul nr. 2 - Deprotejați toate foile Excel cu doar un clic

Am văzut cum să ne protejăm foaia de lucru. Imaginați-vă că aveți multe foi de lucru și toate foile de lucru sunt protejate cu aceeași parolă, atunci nu putem continua să scriem coduri pentru fiecare foaie de lucru separat.

În aceste cazuri, trebuie să folosim bucle pentru a parcurge colecția obiectului foii de lucru și a le proteja cu ușurință.

Codul de mai jos va parcurge toate foile de lucru și va proteja foaia.

Cod:

Sub Unpretect_Example2 () Dim Ws Ca foaie de lucru pentru fiecare Ws din ActiveWorkbook.Whesheets Ws.Unprotect Password: = "Excel @ 1234" 'Schimbați parola așa cum ați menționat în timp ce le protejați. Următorul Ws End Sub

Exemplul # 3 - Situații speciale

Situația 1: Mi-am imaginat vreodată când parola furnizată este greșită. Când parola furnizată este greșită, vom primi 1004: Run Time Error.

Pentru a rezolva aceste erori, putem utiliza opțiunea „On Error GoTo Label”. Codul de mai jos este un exemplu al acestuia.

Cod:

Sub Unpretect_Example3 () Dim Ws Ca foaie de lucru pentru fiecare Ws din ActiveWorkbook.Foarte de lucru la eroare Du-te la mesajul de eroare Ws. Unprotect Password: = "Excel @ 1234" 'Schimbați parola așa cum ați menționat în timp ce le protejați. Mesaj de eroare: MsgBox „Parolă greșită” Următorul subsecvent Ws End

Codul de mai sus va afișa o casetă de mesaje frumoasă care spune „Parola greșită”.

Situația 2: Când foaia este protejată fără o parolă și dacă furnizați o parolă aleatorie, aceasta va proteja în continuare foaia de lucru fără a afișa niciun fel de erori.

Situația 3: Când foaia este protejată de o parolă, dar dacă nu furnizați nicio parolă, atunci VBA va apărea ca o casetă de introducere a parolei pentru a introduce parola.

În caseta de intrare de mai sus, trebuie să introducem parola pentru a ne proteja foaia de lucru. Dacă faceți clic pe butonul Anulare, acesta va ieși din subprocedura VBA fără a afișa nimic, cu excepția cazului în care există o casetă de mesaj pentru utilizator.

Articole interesante...