VBA neapsaugoti lapo Norėdami apsaugoti „Excel“ lapą, naudokite VBA kodą

„Excel VBA“ neapsaugo lapo

Yra situacijų, kai mes saugome savo darbalapius, kad vartotojas negalėtų manipuliuoti darbalapiais. Apsaugodami darbalapį, mes paprastai naudojame tą patį slaptažodį. Šiame straipsnyje mes parodysime būdą, kaip apsaugoti lapą naudojant VBA kodavimą.

Pavyzdžiai

Šį „VBA Unprotect Sheet Excel“ šabloną galite atsisiųsti čia - „VBA Unprotect Sheet Excel“ šablonas

1 pavyzdys

Apsaugoti lapą yra 99% paprasčiau nei juos apsaugoti, mums reikia tik slaptažodžio, kad apsaugotume darbalapį.

Pirmas dalykas, kurį turime padaryti, yra paminėti darbalapio pavadinimą, kurio neapsaugosime. Pvz., Jei norite apsaugoti lapą, pavadintą „Pardavimų duomenys“, jūsų VBA kodas turėtų būti toks.

Darbalapiai („Pardavimų duomenys“)

Tada prieikite prie neapsaugoto metodo.

Kaip matome aukščiau esančiame paveikslėlyje, nematome jokio „IntelliSense“ sąrašo, kuris mums padėtų. Tai padaro sunkesnį darbą, ypač naujam besimokančiajam.

Norėdami tai įveikti, paprastai pasikliauju, kad VBA kintamąjį paskelbiu „darbalapiu“.

Kodas:

 Sub Unpretect_Example1 () Dim Ws kaip darbalapio pabaigos sub 

Dabar nustatykite deklaruojamą kintamąjį į atitinkamą lapą.

Kodas:

 Sub Unpretect_Example1 () Dim Ws kaip darbalapio rinkinys Ws = darbalapiai ("Pardavimų duomenys") Pabaiga 

Dabar naudokite kintamąjį, kad galėtumėte pasiekti visas deklaruoto kintamojo savybes ir metodus.

Kaip matote aukščiau esančiame paveikslėlyje, mes galime pasiekti visas savybes ir metodus. „IntelliSense“ sąraše pasirinkite metodą „Apsaugoti“.

Ji prašo slaptažodžio apsaugoti lapą. Slaptažodį nustatiau kaip „Excel @ 1234“, todėl slaptažodį pateiksiu tą patį.

Tai neapsaugos darbalapio, pavadinto „Pardavimų duomenys“.

Kodas:

 Sub Unpretect_Example1 () Dim Ws kaip darbalapio rinkinys Ws = darbalapiai ("Pardavimų duomenys") Ws. Nepanaikinkite slaptažodžio: = "Excel @ 1234" pabaiga 

Jei slaptažodžio nėra, mums tiesiog reikia naudoti metodą „Apsaugoti“ ir nepaisyti parametro „Slaptažodis“.

Kodas:

 Sub Unpretect_Example1 () Dim Ws kaip darbalapio rinkinys Ws = darbalapiai ("Pardavimų duomenys") 'Pakeiskite darbalapio pavadinimą pagal savo reikalavimą Ws.Unprotect' Jei nėra slaptažodžio, tiesiog perduokite metodą „UnProtect“ Pabaiga Sub 

Jei yra koks nors slaptažodis, turime įvesti slaptažodį dviem kabutėmis. Slaptažodis skiriamas didžiosioms ir mažosioms raidėms, todėl atidžiai prisiminkite juos.

2 pavyzdys - panaikinkite visų „Excel“ lapų apsaugą vienu paspaudimu

Mes matėme, kaip apsaugoti konkretų darbalapį. Įsivaizduokite, kad turite daug darbalapių ir visi darbalapiai yra apsaugoti tuo pačiu slaptažodžiu, tada negalime toliau rašyti kodų kiekvienam darbalapiui atskirai.

Tokiais atvejais turime naudoti kilpas, kad galėtume pereiti prie darbalapio objekto rinkinio ir lengvai juos apsaugoti.

Žemiau pateiktas kodas apžvelgs visus darbalapius ir apsaugos lapą.

Kodas:

Sub Unpretect_Pavyzdys2 () „Dim Ws“ kaip kiekvieno „ActiveWorkbook“ darbo lapą. Darbo lapai „Ws“. Nepanaikinkite slaptažodžio: = "Excel @ 1234" "Pakeiskite slaptažodį, kaip minėjote, juos apsaugodami. Kitas „Ws End Sub“

3 pavyzdys - ypatingos situacijos

1 situacija: kada nors įsivaizdavote, kai pateiktas slaptažodis yra neteisingas. Kai pateiktas slaptažodis neteisingas, gausime 1004: Run Time Error.

Norėdami pašalinti šias klaidas, galime naudoti parinktį „On Error GoTo Label“. Žemiau kodas yra to paties pavyzdys.

Kodas:

Sub Unpretect_Pavyzdys3 () „Dim Ws“, kaip kiekvieno „ActiveWorkbook“ darbo lapo darbalapiai. Darbo lapai apie klaidą „GoTo“ klaidos pranešimai „Ws“. Nepašalinkite slaptažodžio: = "Excel @ 1234" "Pakeiskite slaptažodį, kaip minėjote, juos apsaugodami. Klaidos pranešimas: MsgBox „Neteisingas slaptažodis“ Kitas Ws pabaigos antrinis

Aukščiau pateiktas kodas parodys gražų pranešimų laukelį, kuriame parašyta „Neteisingas slaptažodis“.

2 situacija: Kai lapas yra apsaugotas be slaptažodžio ir jei pateiksite atsitiktinį slaptažodį, jis vis tiek apsaugos darbalapį neapsaugodamas jokių klaidų.

3 situacija: kai lapas yra apsaugotas slaptažodžiu, bet jei nepateiksite jokio slaptažodžio, VBA pasirodys kaip slaptažodžio įvedimo laukelis, kad įvestumėte slaptažodį.

Pirmiau pateiktame įvesties laukelyje turime įvesti slaptažodį, kad apsaugotume darbalapį. Jei spustelėsite mygtuką „Atšaukti“, jis išeis iš VBA paprocedūros nieko neparodydamas, nebent yra vartotojo pranešimų laukelis.


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