VBA kaitseb lehte | Exceli lehe kaitse eemaldamiseks kasutage VBA-koodi
Exceli VBA lehe kaitse eemaldamine
On olukordi, kus me kaitseme oma töölehti, et takistada kasutajal töölehtedega manipuleerimist. Töölehe kaitsmisel säilitame tavaliselt sama parooli. Selles artiklis näitame teile viisi, kuidas lehte VBA-kodeerimise abil kaitsta.
Näited
Selle VBA Unprotect Sheet Exceli malli saate alla laadida siit - VBA Unprotect Sheet Exceli mall siitNäide 1
Lehe kaitsmata jätmine on 99% lihtsam kui nende kaitsmine, vajame lihtsalt töölehe kaitseks parooli.
Esimene asi, mida me peame tegema, on mainida töölehe nime, mille kaitset me ei kavatse teha. Näiteks kui soovite kaitsta lehte nimega „Müügiandmed”, peaks teie VBA-kood olema selline.
Töölehed („müügiandmed”)
Seejärel pöörduge Unprotect-meetodi poole.
Nagu näeme ülaltoodud pildil, ei näe me mingisugust IntelliSense'i loendit, mis meid aitaks. See muudab töö raskemaks, eriti uue õppija jaoks.
Selle ületamiseks loodan tavaliselt VBA muutuja deklareerimisele “töölehena”.
Kood:
Sub Unpretect_Example1 () Dim Ws töölehe lõpus Sub
Nüüd määrake deklareeritud muutuja vastavale lehele.
Kood:
Sub Unpretect_Example1 () Dim Ws töölehtekomplektina Ws = töölehed ("Müügiandmed") Lõpp alam
Nüüd kasutage muutujat, et pääseda juurde kõigile deklareeritud muutuja atribuutidele ja meetoditele.
Nagu näete ülaltoodud pildil, pääseme juurde kõigile omadustele ja meetoditele. Valige loendist IntelliSense meetod „Tühista kaitse”.
Lehe kaitse eemaldamiseks palutakse parooli. Olen määranud parooliks „Excel @ 1234”, seega esitan parooli sama.
See kaitseb töölehte nimega „Müügiandmed“.
Kood:
Sub Unpretect_Example1 () Dim Ws töölehtekomplektina Ws = töölehed ("Müügiandmed") Ws.Parooli tühistamine: = "Excel @ 1234" End Sub
Kui parooli pole, peame lihtsalt kasutama meetodit „Tühista kaitse” ja ignoreerima parooli „Parool”.
Kood:
Sub Unpretect_Example1 () Hämarda Ws töölehekomplektina Ws = töölehed ("Müügiandmed") 'Muutke töölehe nime vastavalt oma nõudele Ws.Unprotect' Kui parooli pole, edastage lihtsalt meetod "Tühista kaitse" Lõpp alam
Kui parool on olemas, peame parooli sisestama jutumärkides. Parool on tõstutundlik, seega pidage neid hoolikalt meeles.
Näide # 2 - eemaldage kõigi Exceli lehtede kaitse vaid ühe klõpsuga
Oleme näinud, kuidas konkreetset töölehte kaitsta. Kujutage ette, et teil on palju töölehti ja kõik töölehed on kaitstud sama parooliga, siis ei saa me iga töölehe jaoks eraldi koode kirjutada.
Nendel juhtudel peame kasutama silmuseid, et tööleheobjektide kollektsioonist läbi liikuda ja neid hõlpsalt kaitsta.
Allpool olev kood viib läbi kõik töölehed ja kaitseb lehte.
Kood:
Sub Unpretect_Example2 () Hämarda Ws töölehena ActiveWorkbooki iga W-le. Töölehed Ws. Unrotect Password: = "Excel @ 1234" 'Muutke parooli, nagu olete maininud, kaitstes neid. Järgmine Ws End Sub
Näide # 3 - eriolukorrad
1. olukord: olete kunagi ette kujutanud, kui kaasasolev parool on vale. Kui tarnitud parool on vale, saame 1004: Run Time Error.
Nende vigade lahendamiseks võime kasutada valikut „On Error GoTo Label”. Koodi all on sama näide.
Kood:
Sub Unpretect_Example3 () Dim Ws töölehena ActiveWorkbooki iga W-le. Töötabelid vea GoTo veateate Ws-s. Tühjendage parool: = "Excel @ 1234" "Muutke parooli, nagu olete maininud, kaitstes neid. Veateade: MsgBox "Vale parool" Järgmine Ws End Sub
Ülaltoodud kood kuvab kena sõnumikasti „Vale parool“.
2. olukord: kui leht on paroolita kaitstud ja kui sisestate juhusliku parooli, kaitseb see töölehte endiselt ilma mingeid vigu näitamata.
3. olukord: kui leht on parooliga kaitstud, kuid kui te parooli ei esita, ilmub parooli sisestamiseks VBA parooli sisestuskastina.
Töölehe kaitsmiseks peame ülaltoodud sisestuskastis sisestama oma parooli. Kui klõpsate nupul Tühista, väljub see VBA alamprotseduurist ilma midagi kuvamata, välja arvatud juhul, kui kasutaja sõnumikast on olemas.