VBA Protect / Unprotect -regneark

Denne opplæringen lærer deg alt om beskyttelse av Excel -regneark i VBA - Slik beskytter eller fjerner du beskyttelsesark i Excel.

Fjern beskyttelsen til Excel -regneark uten passord

For å fjerne beskyttelsen av et regneark som ikke er passordbeskyttet, bruk denne enkle kodelinjen:

1 Regneark ("Ark1"). Fjern beskyttelsen

Fjern beskyttelsen til Excel -regneark med passord

For å fjerne beskyttelsen av et regneark som er passordbeskyttet, må du også skrive inn passordet:

1 Regneark ("Ark1"). Fjern beskyttelsen av "Passord"

Fjern beskyttelsesarket - mistet passord

For å fjerne beskyttelsen av et regneark uten å vite passordet, må du bruke et tillegg for gjenoppretting av passord.

Beskytt regneark

Arbeidsarkbeskyttelse lar deg låse visse aspekter av arket fra redigering.

Denne menyen finnes i Hjem> Format> Beskytt ark eller ved å høyreklikke på arkfanenavnet:

Vanligvis brukes dette for å beskytte "Låste" celler mot redigering, slik at sluttbrukeren bare kan redigere visse celler.

Du kan låse celler ved å velge dem og åpne Kategorien Beskyttelse av Celleformateringsmeny (CTRL + 1).

Du kan også hindre brukeren i å endre regnearkstrukturen (sette inn, slette eller endre størrelse på rader og kolonner), eller fra å samhandle med autofilter, og mye mer.

Beskytt regneark - uten passord

Du vil kanskje beskytte et regneark uten å angi et passord. Dette forhindrer utilsiktede endringer i regnearket, samtidig som brukeren får tilgang til å gjøre endringer hvis det er ønskelig.

1 Regneark ("Ark1"). Beskytt

Beskytt regneark - Passordbeskytt

1 Regneark ("Ark1"). Beskytt "Passord"

Beskytt regnearkinnstillinger

Eksemplene ovenfor vil beskytte regneark med standard beskyttelsesinnstillinger. I stedet vil du kanskje tilpasse det som er beskyttet:

12345 Regneark ("Sheet1"). Beskytt passord: = strPassword, DrawingObjects: = True, Contents: = True, Scenarier: = True, _UserInterfaceOnly: = True, AllowFormattingCells: = False, AllowFormattingColumns: = False, _AllowFormattingRows: = False, AllowInsertingColumns: = False, AllowInsertingRows: = False, _AllowInsertingHyperlinks: = False, AllowDeletingColumns: = False, AllowDeletingRows: = False, _AllowSorting: = False, AllowFiltering: = False, AllowUsingPivotTables: = False

I stedet for å bruke syntaksen ovenfor, anbefaler jeg å spille inn en makro med de ønskede innstillingene (valgt med menyen for regnearkbeskyttelse ovenfor) og kopiere + lime inn den innspilte koden i prosedyren.

Beskytt ark - la VBA gjøre endringer

Som standard, når du beskytter et ark, gjelder beskyttelsen for VBA -operasjoner i tillegg til brukerhandlinger. Hvis VBA prøver å endre en låst celle, vil du se en kjøretidsfeil 1004. For å unngå dette kan du fjerne beskyttelsen og beskytte beskyttelsesarkene dine når VBA trenger å samhandle med dem:

123456789 Sub Edit_Sheet1 ()'Beskytt ark 1Regneark ("Ark1"). Fjern beskyttelsen'Gjør noe mot ark 1'Beskytt ark 1Regneark ("Ark1"). BeskyttSlutt Sub

Imidlertid er det lett å glemme å fjerne beskyttelsen og/eller ombeskytte regnearkene dine. Dette kan øke sannsynligheten for en kodingsfeil.

I stedet kan du bruke UserInterFaceOnly -innstillingen. Når det er SANT, vil regneark KUN være beskyttet mot brukere, IKKE mot VBA.VBA -koden din kan redigere regnearket akkurat som om den var låst opp.

To viktige punkter om UserInterFaceOnly:

  • Denne innstillingen er ikke tilgjengelig fra arbeidsarkbeskyttelsesmenyen (vist ovenfor). Det er en innstilling som må defineres i VBA.
  • Innstillingen lagres ikke når du lukker en arbeidsbok. Det må defineres på nytt hver gang en arbeidsbok åpnes.

Så for å angi UserInterFaceOnly -egenskapen, bør du plassere følgende Workbook_Open -hendelsesprosedyre i ThisWorkbook -modulen:

1234567 Private Sub Workbook_Open ()Dim ws Som regnearkFor hver gang i ThisWorkbook.Worksheetsws.Protect UserInterfaceOnly: = TrueNeste wsSlutt Sub

Workbook_Open er en spesiell hendelsesprosedyre som kjøres hver gang arbeidsboken er åpen. Den må plasseres i ThisWorkbook -modulen. Alternativt kan du bruke Auto_Open -hendelsesprosedyren (dekkes ikke her).

Fjern beskyttelsen av alle arkene Makro

Denne makroen vil fjerne beskyttelsen av alle ark i en arbeidsbok:

123456789 'Fjern beskyttelsen av alle regnearkSub UnProtectAllSheets ()Dim ws Som regnearkFor hver uke i regnearkws.Unbeskytt "passord"Neste wsSlutt Sub

Beskytt alle ark Makro

Denne makroen vil beskytte alle ark i en arbeidsbok:

123456789 'Beskytt alle regnearkSub ProtectAllSheets ()Dim ws Som regnearkFor hver uke i regnearkws.Protect "passord"Neste wsSlutt Sub

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave