VBA UnProtect Sheet - Använd VBA-kod för att avskydda Excel-ark

Innehållsförteckning

Excel VBA Unprotect Sheet

Det finns situationer där vi skyddar våra kalkylblad för att förhindra att användaren manipulerar kalkylbladet. Samtidigt som vi skyddar kalkylbladet behåller vi vanligtvis samma lösenord. I den här artikeln visar vi dig hur du skyddar arket med VBA-kodning.

Exempel

Exempel 1

Att skydda arket är 99% enklare än att skydda dem. Vi behöver bara lösenordet för att skydda kalkylbladet.

Det allra första vi behöver göra är att nämna kalkylbladets namn som vi kommer att skydda. Till exempel, om du vill avskydda arket med namnet "Försäljningsdata", ska din VBA-kod vara så här.

Kalkylblad ("Försäljningsdata")

Gå sedan till Unprotect-metoden.

Som vi kan se i bilden ovan ser vi ingen IntelliSense-lista för att hjälpa oss. Detta gör jobbet hårdare, särskilt för den nya eleven.

För att övervinna detta förlitar jag mig vanligtvis på att förklara en VBA-variabel som "Arbetsblad".

Koda:

Under Unpretect_Example1 () Dim Ws som kalkylblad Slut sub

Ställ nu in den deklarerade variabeln till respektive ark.

Koda:

Sub Unpretect_Example1 () Dim Ws Som kalkyluppsättning Ws = Kalkylblad ("Försäljningsdata") Avsluta sub

Använd nu en variabel för att få tillgång till alla egenskaper och metoder för den deklarerade variabeln.

Som du kan se i bilden ovan kan vi komma åt alla egenskaper och metoder. Välj "Unprotect" -metoden från IntelliSense-listan.

Det ber lösenordet för att avskydda bladet. Jag har ställt in lösenordet som "Excel @ 1234", så jag anger lösenordet som detsamma.

Detta skyddar kalkylbladet ”Försäljningsdata”.

Koda:

Under Unpretect_Example1 () Dim Ws Som kalkyluppsättning Ws = Kalkylblad ("Försäljningsdata") Ws.Unprotect Password: = "Excel @ 1234" Avsluta

Om det inte finns något lösenord behöver vi bara använda metoden "Avskydda" och ignorera parametern "Lösenord".

Koda:

Sub Unpretect_Example1 () Dim Ws Som kalkyluppsättning Ws = Kalkylblad ("Försäljningsdata") "Ändra kalkylbladets namn enligt ditt krav Ws.Unprotect" Om det inte finns något lösenord, skicka bara "UnProtect" -metoden Avsluta Sub

Om det finns något lösenord måste vi ange lösenordet i dubbla citat. Lösenordet är skiftlägeskänsligt så kom ihåg dem noga.

Exempel # 2 - Avskydda alla Excel-ark med bara ett klick

Vi har sett hur man skyddar det specifika kalkylbladet. Tänk dig att du har många kalkylblad, och alla kalkylblad är skyddade med samma lösenord, då kan vi inte fortsätta skriva koder för varje kalkylblad separat.

I dessa fall måste vi använda öglor för att slinga igenom samlingen av kalkylobjekt och avskydda dem med lätthet.

Koden nedan kommer att slinga igenom alla kalkylblad och skydda arket.

Koda:

Sub Unpretect_Example2 () Dim Ws som kalkylblad för varje Ws i ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 1234" 'Ändra lösenordet som du har nämnt medan du skyddar dem. Nästa Ws End Sub

Exempel # 3 - Särskilda situationer

Situation 1: Har någonsin föreställt mig när det medföljande lösenordet är fel. När det angivna lösenordet är fel får vi 1004: Run Time Error.

För att hantera dessa fel kan vi använda alternativet ”On Error GoTo Label”. Nedanstående kod är ett exempel på detsamma.

Koda:

Sub Unpretect_Example3 () Dim Ws som kalkylblad för varje Ws i ActiveWorkbook.Worksheets On Error Gå till felmeddelande Ws.Unprotect Password: = "Excel @ 1234" 'Ändra lösenordet som du har nämnt medan du skyddar dem. Felmeddelande: MsgBox "Fel lösenord" Nästa Ws End Sub

Ovanstående kod visar en trevlig meddelanderuta som säger "Fel lösenord."

Situation 2: När arket skyddas utan lösenord och om du anger ett slumpmässigt lösenord kommer det fortfarande att avskydda kalkylbladet utan att det visas några fel.

Situation 3: När arket är skyddat av ett lösenord, men om du inte anger något lösenord, kommer VBA att dyka upp som en inmatningsruta för lösenord för att ange lösenordet.

I inmatningsrutan ovan måste vi ange vårt lösenord för att avskydda kalkylbladet. Om du klickar på knappen Avbryt stängs VBA-delproceduren utan att visa något om inte det finns någon användarmeddelande.

Intressanta artiklar...