VBA UnProtect Sheet - Brug VBA-kode til at fjerne beskyttelsen af ​​Excel-ark

Indholdsfortegnelse

Excel VBA Unprotect Sheet

Der er situationer, hvor vi beskytter vores regneark for at forhindre det fra brugeren i at manipulere regnearkene. Mens vi beskytter regnearket, opretholder vi normalt den samme adgangskode. I denne artikel viser vi dig, hvordan du afbeskytter arket ved hjælp af VBA-kodning.

Eksempler

Eksempel nr. 1

Det er 99% enklere at beskytte arket end at beskytte dem. Vi har bare brug for adgangskoden for at fjerne beskyttelsen af ​​regnearket.

Den allerførste ting, vi skal gøre, er at nævne det regnearknavn, vi vil beskytte. For eksempel, hvis du ønsker at fjerne beskyttelsen af ​​arket med navnet "Salgsdata", så skal din VBA-kode være sådan.

Arbejdsark (“Salgsdata”)

Gå derefter til Unprotect-metoden.

Som vi kan se i ovenstående billede, ser vi ikke nogen form for IntelliSense-liste, der kan hjælpe os. Dette gør jobbet hårdere, især for den nye elev.

For at overvinde dette stoler jeg normalt på at erklære en VBA-variabel som "Arbejdsark".

Kode:

Sub Unpretect_Example1 () Dim Ws Som regneark End Sub

Indstil nu den deklarerede variabel til det respektive ark.

Kode:

Sub Unpretect_Example1 () Dim Ws som regnearksæt Ws = regneark ("Salgsdata") Afslut sub

Brug nu en variabel til at få adgang til alle egenskaberne og metoderne for den deklarerede variabel.

Som du kan se i ovenstående billede, kan vi få adgang til alle egenskaber og metoder. Vælg metoden "Fjern beskyttelse" fra IntelliSense-listen.

Det beder om adgangskoden for at fjerne beskyttelsen af ​​arket. Jeg har indstillet adgangskoden som "Excel @ 1234", så jeg vil angive adgangskoden som den samme.

Dette beskytter regnearket med navnet "Salgsdata".

Kode:

Sub Unpretect_Example1 () Dim Ws som regnearksæt Ws = regneark ("Salgsdata") Ws.Unprotect Password: = "Excel @ 1234" Afslut sub

Hvis der ikke er nogen adgangskode, skal vi bare bruge metoden "Fjern beskyttelse" og ignorere parameteren "Adgangskode".

Kode:

Sub Unpretect_Example1 () Dim Ws som regneark Sæt Ws = regneark ("Salgsdata") 'Skift regnearknavnet efter dine krav Ws.Unprotect' Hvis der ikke er nogen adgangskode, skal du bare sende "UnProtect" -metoden Afslut Sub

Hvis der er en adgangskode, skal vi indtaste adgangskoden med dobbelt anførselstegn. Adgangskoden er store og små bogstaver, så husk dem omhyggeligt.

Eksempel 2 - Fjern beskyttelsen af ​​alle Excel-ark med et enkelt klik

Vi har set, hvordan man afbeskytter det bestemte regneark. Forestil dig, at du har mange regneark, og alle regnearkene er beskyttet med den samme adgangskode, så vi kan ikke fortsætte med at skrive koder for hvert regneark separat.

I disse tilfælde er vi nødt til at bruge sløjfer til at løbe gennem indsamlingen af ​​regnearkobjekt og ubeskytte dem med lethed.

Nedenstående kode vil løbe gennem alle regnearkene og fjerne beskyttelsen af ​​arket.

Kode:

Sub Unpretect_Example2 () Dim Ws som regneark for hver Ws i ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 1234" 'Skift adgangskoden, som du har nævnt, mens du beskytter dem. Næste Ws End Sub

Eksempel 3 - Særlige situationer

Situation 1: Har nogensinde forestillet mig, hvornår den medfølgende adgangskode er forkert. Når den medfølgende adgangskode er forkert, får vi 1004: Run Time Error.

For at håndtere disse fejl kan vi bruge indstillingen "On Error GoTo Label". Nedenstående kode er et eksempel på det samme.

Kode:

Sub Unpretect_Example3 () Dim Ws som regneark for hver Ws i ActiveWorkbook.Worksheets On Error Gå til fejlmeddelelse Ws.Unprotect Password: = "Excel @ 1234" 'Skift adgangskoden, som du har nævnt, mens du beskytter dem. Fejlmeddelelse: MsgBox "Forkert adgangskode" Næste Ws slut sub

Ovenstående kode viser en dejlig beskedboks, der siger "Den forkerte adgangskode."

Situation 2: Når arket er beskyttet uden en adgangskode, og hvis du angiver en tilfældig adgangskode, vil det stadig beskytte regnearket uden at vise nogen form for fejl.

Situation 3: Når arket er beskyttet af en adgangskode, men hvis du ikke angiver nogen adgangskode, vises VBA som indtastningsfelt for adgangskode for at indtaste adgangskoden.

I ovenstående indtastningsfelt skal vi indtaste vores adgangskode for at fjerne beskyttelsen af ​​regnearket. Hvis du klikker på knappen Annuller, forlader den VBA-underproceduren uden at vise noget, medmindre der er nogen brugermeddelelsesfelt.

Interessante artikler...