VBA kaitseb lehte - Exceli lehe kaitse eemaldamiseks kasutage VBA-koodi

Lang L: none (table-of-contents)

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

Näide 1

Lehe kaitsmata on 99% lihtsam kui nende kaitse. Töölehe kaitse eemaldamiseks vajame lihtsalt parooli.

Esimene asi, mida me peame tegema, on mainida töölehe nime, mille kaitset me ei kavatse teha. Näiteks kui soovite lehe nimega „Müügiandmed” kaitseta, siis 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 mingit 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 deklareeritud muutuja kõigi omaduste ja meetodite juurde.

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 () Dim 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, kuvatakse tõrge 1004: Run Time.

Nende vigade lahendamiseks võime kasutada valikut „On Error GoTo Label”. Allpool toodud kood on näide samast.

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, milles öeldakse: "Vale parool".

2. olukord: kui leht on kaitstud ilma paroolita 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õnumikasti on.

Huvitavad Artiklid...