VBA -arbetsbokskydd (lösenordsskydd / avskydd)

Excel ger dig möjlighet att skydda dina Excel -arbetsböcker från ändringar. Denna handledning visar dig hur du skyddar eller avskyddar arbetsbokstrukturen med VBA.

VBA -arbetsbokskydd

VBA Workbook Protection låter dig låsa arbetsbokens struktur. När en arbetsbok är skyddad kommer användare inte att kunna lägga till, ta bort, dölja / ta bort eller skydda / avskydda kalkylblad. Om du bygger en modell vill du förmodligen aktivera arbetsbokskydd för att förhindra att användare (eller du!) Av misstag tar bort kalkylblad.

UnProtect Workbook VBA

För att avskydda en arbetsbok använder du bara följande kodrad:

1 Arbetsböcker ("Bok1"). Oskyddad

Obs! Den här koden fungerar bara om arbetsboken var skyddad utan ett lösenord. Om det var skyddat med ett lösenord måste du också ange lösenordet för att avskydda det:

Skydda arbetsboken med lösenord

Denna kodrad avskyddar en arbetsbok som har skyddats med ett lösenord:

1 Workbooks ("Book1"). Unprotect Password: = "password"

eller så kan du skicka lösenord: =

1 Arbetsböcker ("Bok1"). Skydda "lösenord"

Avskydda denna arbetsbok

Denna kod avskyddar ThisWorkbook (ThisWorkbook är arbetsboken där den löpande koden lagras. Den kommer aldrig att ändras).

1 ThisWorkbook.Onprotect

eller avskydda ThisWorkbook med ett lösenord:

1 ThisWorkbook.Unprotect "lösenord"

Avskydda ActiveWorkbook

Denna kod avbryter ActiveWorbook.

1 ActiveWorkbook.Onskydda

eller avskydda ActiveWorkbook med ett lösenord:

1 ActiveWorkbook.Unprotect "lösenord"

Ta bort alla öppna arbetsböcker

Denna kod avskyddar alla öppna arbetsböcker:

12345678 Sub UnprotectAllOpenWorkbooks ()Dim wb Som arbetsbokFör varje wb i arbetsböckerwb.OskyddadNästa wbAvsluta Sub

UnProtect Workbook - Utan att veta lösenord

Om du behöver avskydda en arbetsbok utan att veta lösenordet finns det flera tillägg som kan hjälpa dig. Jag skulle rekommendera Ribbon Commander.

Ta bort alla blad i arbetsboken

När du har avskyddat en arbetsbok kanske du också vill ta bort alla ark i arbetsboken. Här är en procedur som avskyddar alla ark:

12345678 Sub UnProtectWorkbookAndAllSheets ()Dim ws Som arbetsbladActiveWorkbook.OnskyddaFör varje ws i kalkylbladws.OskyddadNästaAvsluta Sub

Skydda arbetsboken

Du kan skydda arbetsbokstrukturer på samma sätt som du avskyddar.

Skydda arbetsboken Inget lösenord

Denna kodrad skyddar en arbetsbok (inget lösenord)

1 Arbetsböcker ("Bok1"). Skydda

Obs! Jag använder ofta arbetsbokskydd utan lösenord, helt enkelt för att förhindra olycklig ändringar i arbetsböcker.

Skydda arbetsboken med lösenord

Denna kod skyddar arbetsbokstrukturen (med ett lösenord)

1 Arbetsböcker ("Bok1"). Skydda "lösenord"

eller:

1 Arbetsböcker ("Bok1"). Skydda lösenord: = "lösenord"

Lösenordsskydda Excel -fil

Istället för arbetsbokskydd kanske du vill lösenordsskydda en hel Excel-fil. För att göra det med VBA, spara som arbetsboken med ett lösenord:

1 Workbooks ("Book1"). SaveAs "password"

Skydda / avskydda arbetsboksexempel

Ta bort alla kalkylblad i Protected Workbook

Detta förfarande avskyddar en arbetsbok, döljer alla kalkylblad och skyddar arbetsboken igen

12345678910 Sub UnprotectWB_Unhide_All_Sheets ()Dim ws Som arbetsbladActiveWorkbook.OnskyddaFör varje ws i kalkylbladws.Visible = xlSheetVisibleNästaActiveWorkbook.ProtectAvsluta Sub

Skydda arbetsboken och alla blad

Detta förfarande skyddar alla kalkylblad i en arbetsbok och skyddar sedan arbetsboken:

1234567891011 Sub ProtectWB_Protect_All_Sheets ()Dim ws Som arbetsbladActiveWorkbook.OnskyddaFör varje ws i kalkylbladws.ProtectNästaActiveWorkbook.ProtectAvsluta Sub

Du kan också lägga till lösenordsskydd:

1234567891011 Sub ProtectWB_Protect_All_Sheets_Pswrd ()Dim ws Som arbetsbladActiveWorkbook.Unprotect "lösenord"För varje ws i kalkylbladws.Protect "lösenord"NästaActiveWorkbook.Protect "lösenord"Avsluta Sub
wave wave wave wave wave