VBA UnProtect Sheet - Upotrijebite VBA kod za uklanjanje zaštite Excel lista

Excel VBA zaštitni list

Postoje situacije u kojima štitimo svoje radne listove kako bismo spriječili da korisnik manipulira radnim listovima. Dok štitimo radni list, obično zadržavamo istu lozinku. U ovom ćemo vam članku pokazati način uklanjanja zaštite lista pomoću VBA kodiranja.

Primjeri

Primjer # 1

Oslobađanje plahte 99% je jednostavnije od njihove zaštite. Samo nam treba lozinka za uklanjanje zaštite radnog lista.

Prvo što moramo učiniti je spomenuti naziv radnog lista koji ćemo ukloniti iz zaštite. Na primjer, ako želite ukloniti zaštitu lista s nazivom "Podaci o prodaji", tada bi vaš VBA kôd trebao biti ovakav.

Radni listovi ("Podaci o prodaji")

Zatim pristupite metodi Unprotect.

Kao što možemo vidjeti na gornjoj slici, ne vidimo nijedan popis IntelliSense koji bi nam pomogao. To posao čini težim, posebno za nove učenike.

Da bih to prevladao, obično se oslanjam na deklariranje VBA varijable kao "Radni list".

Kodirati:

Sub Unpretect_Example1 () Dim Ws as Worksheet End Sub

Sada postavite deklariranu varijablu na odgovarajući list.

Kodirati:

Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") End Sub

Sada koristite varijablu za pristup svim svojstvima i metodama deklarirane varijable.

Kao što vidite na gornjoj slici, možemo pristupiti svim svojstvima i metodama. Odaberite metodu "Unprotect" (Poništi zaštitu) s popisa IntelliSense.

Traži lozinku za uklanjanje zaštite lista. Lozinku sam postavio kao "Excel @ 1234", tako da ću je dostaviti istu.

Ovo će ukloniti zaštitu radnog lista pod nazivom "Podaci o prodaji".

Kodirati:

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

Ako nema lozinke, tada trebamo koristiti metodu "Unprotect" i zanemariti parametar "Password".

Kodirati:

Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") 'Promijenite naziv radnog lista prema vašem zahtjevu Ws.Unprotect' Ako nema lozinke, samo proslijedite metodu "UnProtect" End Sub

Ako postoji lozinka, tada je moramo unijeti u dvostruke navodnike. Lozinka razlikuje velika i mala slova pa ih pažljivo zapamtite.

Primjer # 2 - Samo jednim klikom uklonite zaštitu iz svih listova programa Excel

Vidjeli smo kako ukloniti zaštitu određenog radnog lista. Zamislite da imate mnogo radnih listova, a svi su radni listovi zaštićeni istom lozinkom, pa ne možemo nastaviti pisati kodove za svaki radni list zasebno.

U tim slučajevima trebamo upotrijebiti petlje za petlju kroz kolekciju predmeta radnog lista i s lakoćom ih ukloniti.

Kôd u nastavku petljat će se kroz sve radne listove i ukloniti zaštitu lista.

Kodirati:

Sub Unpretect_Example2 () Zatamni W kao radni list za svaki Ws u ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 1234" 'Promijenite lozinku kao što ste spomenuli štiteći je. Slijedi Ws End Sub

Primjer # 3 - Posebne situacije

Situacija 1: Jeste li ikad zamislili kad je navedena lozinka pogrešna. Kad je navedena lozinka pogrešna, dobit ćemo pogrešku 1004: Run Time.

Da bismo riješili ove pogreške, možemo koristiti opciju "On Error GoTo Label". Donji kod je primjer istog.

Kodirati:

Sub Unpretect_Example3 () Zatamni kao radni list za svaki W u ActiveWorkbook.Radni listovi o pogrešci Idi na poruku o pogrešci Ws.Unprotect Password: = "Excel @ 1234" 'Promijenite lozinku kao što ste spomenuli štiteći ih. Poruka o pogrešci: MsgBox "Pogrešna lozinka" Sljedeća Ws Kraj Sub

Gornji kod prikazat će lijep okvir s porukom: "Pogrešna lozinka."

Situacija 2: Kada je list zaštićen bez lozinke i ako navedete slučajnu lozinku, i dalje će ukloniti zaštitu radnog lista bez pokazivanja bilo kakvih pogrešaka.

Situacija 3: Kada je list zaštićen lozinkom, ali ako ne navedete lozinku, tada će se VBA pojaviti kao okvir za unos lozinke za unos lozinke.

U gornji okvir za unos moramo unijeti lozinku da bismo uklonili zaštitu radnog lista. Ako kliknete na gumb Odustani, on će izaći iz VBA potprocedure ne prikazujući ništa, osim ako postoji okvir za korisničku poruku.

Zanimljivi članci...