Excel lar deg beskytte Excel -arbeidsbøkene dine mot endringer. Denne opplæringen viser deg hvordan du beskytter eller avbeskytter arbeidsbokstrukturen ved hjelp av VBA.
VBA -arbeidsbokbeskyttelse
VBA Workbook Protection lar deg låse strukturen i arbeidsboken. Når en arbeidsbok er beskyttet, kan brukerne ikke legge til, slette, skjule / skjule eller beskytte / fjerne beskyttelsen av regneark. Hvis du bygger en modell, vil du sannsynligvis slå på arbeidsbokbeskyttelse for å forhindre at brukere (eller deg!) Ved et uhell sletter regneark.
UnProtect Workbook VBA
Hvis du vil oppheve beskyttelsen av en arbeidsbok, bruker du bare følgende kodelinje:
1 | Arbeidsbøker ("Bok1"). Fjern beskyttelsen |
Merk: Denne koden fungerer bare hvis arbeidsboken var beskyttet uten et passord. Hvis det var beskyttet med et passord, må du også skrive inn passordet for å fjerne beskyttelsen av det:
Fjern beskyttelsen av arbeidsbok med passord
Denne kodelinjen vil avbeskytte en arbeidsbok som har blitt beskyttet med et passord:
1 | Arbeidsbøker ("Bok1"). Avbeskytt passord: = "passord" |
eller du kan utelate passord: =
1 | Arbeidsbøker ("Bok1"). Fjern beskyttelsen av "passord" |
Fjern beskyttelsen av denne arbeidsboken
Denne koden opphever beskyttelsen av ThisWorkbook (ThisWorkbook er arbeidsboken der den løpende koden er lagret. Den vil aldri endres).
1 | ThisWorkbook.Beskytt |
eller fjern beskyttelsen til denne arbeidsboken med et passord:
1 | ThisWorkbook.Unbeskytt "passord" |
Fjern beskyttelsen av ActiveWorkbook
Denne koden vil fjerne beskyttelsen av ActiveWorbook.
1 | ActiveWorkbook.Beskytt |
eller fjern beskyttelsen til ActiveWorkbook med et passord:
1 | ActiveWorkbook.Beskytt "passord" |
Fjern beskyttelsen av alle åpne arbeidsbøker
Denne koden vil fjerne beskyttelsen av alle åpne arbeidsbøker:
12345678 | Sub UnprotectAllOpenWorkbooks ()Dim wb Som arbeidsbokFor hver wb i arbeidsbøkerwb.BeskyttNeste wbSlutt Sub |
UnProtect Workbook - Uten å vite passord
Hvis du trenger å fjerne beskyttelsen av en arbeidsbok uten å vite passordet, er det flere tillegg som kan hjelpe deg. Jeg vil anbefale Ribbon Commander.
Fjern beskyttelsen av alle ark i arbeidsboken
Etter at du har avbeskyttet en arbeidsbok, vil du kanskje også fjerne alle beskyttelsesarkene i arbeidsboken. Her er en prosedyre som avbeskytter alle ark:
12345678 | Sub UnProtectWorkbookAndAllSheets ()Dim ws Som regnearkActiveWorkbook.BeskyttFor hver uke i regnearkws.UnbeskyttelseNesteSlutt Sub |
Beskytt arbeidsbok
Du kan beskytte arbeidsbokstrukturer på samme måte som du avbeskytter.
Beskytt arbeidsbok Ingen passord
Denne kodelinjen vil beskytte en arbeidsbok (ikke noe passord)
1 | Arbeidsbøker ("Bok1"). Beskytt |
Merk: Jeg bruker ofte arbeidsbokbeskyttelse uten passord, bare for å forhindre tilfeldig endringer i arbeidsbøker.
Beskytt arbeidsbok med passord
Denne koden vil beskytte arbeidsbokstrukturen (med et passord)
1 | Arbeidsbøker ("Bok1"). Beskytt "passord" |
eller:
1 | Arbeidsbøker ("Bok1"). Beskytt passord: = "passord" |
Passordbeskytt Excel -fil
I stedet for arbeidsbokbeskyttelse vil du kanskje passordbeskytte en hel Excel-fil. For å gjøre det ved å bruke VBA, Lagre som arbeidsbok med et passord:
1 | Arbeidsbøker ("Book1"). SaveAs "passord" |
Beskytt / fjern beskyttelsen på arbeidsbokeksempler
Vis alle regneark i Beskyttet arbeidsbok
Denne prosedyren fjerner beskyttelsen av en arbeidsbok, skjuler alle regneark og beskytter arbeidsboken på nytt
12345678910 | Sub UnprotectWB_Unhide_All_Sheets ()Dim ws Som regnearkActiveWorkbook.BeskyttFor hver uke i regnearkws.Visible = xlSheetVisibleNesteActiveWorkbook.ProtectSlutt Sub |
Beskytt arbeidsbok og alle ark
Denne fremgangsmåten vil beskytte alle regneark i en arbeidsbok og deretter beskytte arbeidsboken:
1234567891011 | Sub ProtectWB_Protect_All_Sheets ()Dim ws Som regnearkActiveWorkbook.BeskyttFor hver uke i regnearkws.ProtectNesteActiveWorkbook.ProtectSlutt Sub |
Du kan også legge til passordbeskyttelse:
1234567891011 | Sub ProtectWB_Protect_All_Sheets_Pswrd ()Dim ws Som regnearkActiveWorkbook.Beskytt "passord"For hver uke i regnearkws.Protect "passord"NesteActiveWorkbook.Protect "passord"Slutt Sub |