VBA UnProtect Sheet | Izmantojiet VBA kodu, lai atceltu Excel lapas aizsardzību

Excel VBA Aizsargājiet lapu

Pastāv situācijas, kad mēs aizsargājam savas darblapas, lai liegtu lietotājam manipulēt ar darblapām. Aizsargājot darblapu, mēs parasti uzturam to pašu paroli. Šajā rakstā mēs parādīsim veidu, kā aizsargāt lapu, izmantojot VBA kodēšanu.

Piemēri

Šo VBA Unprotect Sheet Excel veidni varat lejupielādēt šeit - VBA Unprotect Sheet Excel veidne

1. piemērs

Loksnes neaizsargāšana ir par 99% vienkāršāka nekā to aizsardzība, mums vienkārši nepieciešama parole, lai aizsargātu darblapu.

Pats pirmais, kas mums jādara, ir pieminēt darblapas nosaukumu, kuru aizsargāsim. Piemēram, ja vēlaties aizsargāt lapu ar nosaukumu “Pārdošanas dati”, jūsu VBA kodam jābūt šādam.

Darblapas (“Pārdošanas dati”)

Pēc tam piekļūstiet metodei Unprotect.

Kā redzams iepriekš redzamajā attēlā, mēs neredzam nekāda veida IntelliSense sarakstu, kas mums palīdzētu. Tas padara darbu grūtāku, it īpaši jaunajam izglītojamajam.

Lai to pārvarētu, es parasti paļauju uz VBA mainīgā pasludināšanu par “darblapu”.

Kods:

 Sub Unpretect_Example1 () Dim Ws kā darblapas beigu apakšsadaļa 

Tagad iestatiet deklarēto mainīgo attiecīgajā lapā.

Kods:

 Sub Unpretect_Example1 () Dim Ws kā darblapu kopa Ws = darblapas ("Pārdošanas dati") Beigu apakšdaļa 

Tagad izmantojiet mainīgo, lai piekļūtu visām deklarētā mainīgā īpašībām un metodēm.

Kā redzat augšējā attēlā, mēs varam piekļūt visām īpašībām un metodēm. IntelliSense sarakstā atlasiet metodi “Noņemt aizsardzību”.

Tā prasa paroli, lai aizsargātu lapu. Esmu iestatījis paroli kā “Excel @ 1234”, tāpēc es to ievadīšu tāpat.

Tas aizsargās darblapu ar nosaukumu “Pārdošanas dati”.

Kods:

 Sub Unpretect_Example1 () Dim Ws kā darblapu kopa Ws = darblapas ("Pārdošanas dati") Ws. Neaizsargājiet paroli: = "Excel @ 1234" End Sub 

Ja nav paroles, mums vienkārši jāizmanto metode “Aizsargāt” un ignorēt parametru “Parole”.

Kods:

 Sub Unpretect_Example1 () Dim Ws kā darblapu kopa Ws = darblapas ("Pārdošanas dati") 'Mainiet darblapas nosaukumu atbilstoši savai prasībai Ws.Unrotect' Ja nav paroles, vienkārši nododiet metodi "UnProtect" End Sub 

Ja ir kāda parole, mums tā jāievada divkāršās pēdiņās. Parole ir reģistrjutīga, tāpēc uzmanīgi atcerieties tās.

2. piemērs - noņemiet visu Excel lapu aizsardzību tikai ar vienu klikšķi

Mēs esam redzējuši, kā aizsargāt konkrēto darblapu. Iedomājieties, ka jums ir daudz darblapu un visas darblapas ir aizsargātas ar vienu un to pašu paroli, tad mēs nevaram turpināt rakstīt kodus katrai darblapai atsevišķi.

Šādos gadījumos mums ir jāizmanto cilpas, lai pārietu cauri darblapas objekta kolekcijai un tās viegli aizsargātu.

Zem koda tiks apskatītas visas darblapas un aizsargāta lapa.

Kods:

Sub Unpretect_Example2 () Aptumšojiet Ws kā darblapu katrai W ActiveWorkbook.Worksheets Ws.Neaizsargājiet paroli: = "Excel @ 1234" 'Mainiet paroli, kā jau minējāt, tos aizsargājot. Nākamais Ws End Sub

3. piemērs - īpašas situācijas

1. situācija: vai esat kādreiz iedomājušies, kad piegādātā parole ir nepareiza. Kad piegādātā parole ir nepareiza, mēs saņemsim 1004: Run Time Error.

Lai novērstu šīs kļūdas, mēs varam izmantot opciju “On Error GoTo Label”. Zem koda ir tā paša piemērs.

Kods:

Sub Unpretect_Example3 () Dim Ws kā darblapa katram W ActiveWorkbook.Worksheet On On Error GoTo Errormessage Ws.Neaizsargājiet paroli: = "Excel @ 1234" 'Mainiet paroli, kā jau minējāt, tos aizsargājot. Kļūdaina ziņa: MsgBox "Nepareiza parole" Next Ws End Sub

Iepriekš minētais kods parādīs jauku ziņojumu lodziņu ar tekstu “Nepareiza parole”.

2. situācija: Ja lapa ir aizsargāta bez paroles un ja ievadāt nejaušu paroli, tā joprojām aizsargās darblapu, nerādot nekādas kļūdas.

3. situācija: Ja lapa ir aizsargāta ar paroli, bet, ja jūs nepievienojat nevienu paroli, VBA parādīsies kā paroles ievades lodziņš, lai ievadītu paroli.

Iepriekš norādītajā ievades lodziņā mums jāievada sava parole, lai aizsargātu darblapu. Noklikšķinot uz pogas Atcelt, tā izies no VBA apakšprocedūras, neko nerādot, ja vien nav lietotāja ziņojumu lodziņa.


$config[zx-auto] not found$config[zx-overlay] not found