VBA Beskyt / Fjern beskyttelse af regneark

Denne vejledning lærer dig alt om beskyttelse af Excel -regneark i VBA - Sådan beskyttes eller fjernes beskyttelsesark i Excel.

Fjern beskyttelse af Excel -regneark uden adgangskode

For at afbeskytte et regneark, der ikke er beskyttet med en adgangskode, skal du bruge denne enkle kodelinje:

1 Regneark ("Ark1"). Beskyt ikke

Fjern beskyttelsen af ​​Excel -regneark med adgangskode

For at afbeskytte et regneark, der er beskyttet med adgangskode, skal du også indtaste adgangskoden:

1 Regneark ("Sheet1"). Fjern beskyttelsen af ​​"Password"

Afbeskyt ark - tabt adgangskode

Hvis du vil afbeskytte et regneark uden at kende adgangskoden, skal du bruge et tilføjelsesprogram til gendannelse af adgangskode.

Beskyt regneark

Arbejdsarkbeskyttelse giver dig mulighed for at låse visse aspekter af arket fra redigering.

Denne menu findes i Hjem> Format> Beskyt ark eller ved at højreklikke på fanebladets arknavn:

Normalt bruges dette til at beskytte "låste" celler mod redigering, hvilket kun tillader slutbrugeren at redigere bestemte celler.

Du kan låse celler ved at markere dem og åbne Fanen Beskyttelse af Celleformateringsmenu (CTRL + 1).

Du kan også forhindre brugeren i at ændre regnearksstrukturen (indsætte, slette eller ændre størrelse på rækker og kolonner) eller interagere med autofilter og meget mere.

Beskyt regneark - uden adgangskode

Du vil måske beskytte et regneark uden at indtaste en adgangskode. Dette forhindrer utilsigtede ændringer af regnearket, samtidig med at brugeren får adgang til at foretage ændringer, hvis det ønskes.

1 Arbejdsark ("Ark1"). Beskyt

Beskyt regneark - Beskyt adgangskode

1 Regneark ("Ark1"). Beskyt "Adgangskode"

Beskyt regnearksindstillinger

Ovenstående eksempler beskytter regneark med standardbeskyttelsesindstillingerne. I stedet vil du måske tilpasse det, der er beskyttet:

12345 Regneark ("Sheet1"). Beskyt adgangskode: = strPassword, DrawingObjects: = True, Indhold: = True, Scenarier: = True, _UserInterfaceOnly: = True, AllowFormattingCells: = False, AllowFormattingColumns: = False, _AllowFormattingRows: = Falsk, AllowInsertingColumns: = Falsk, AllowInsertingRows: = Falsk, _AllowInsertingHyperlinks: = False, AllowDeletingColumns: = False, AllowDeletingRows: = False, _AllowSorting: = Falsk, AllowFiltering: = Falsk, AllowUsingPivotTables: = Falsk

I stedet for at bruge syntaksen ovenfor anbefaler jeg at optage en makro med dine ønskede indstillinger (valgt med menuen Beskyttelse af regneark ovenfor) og kopiere + indsætte den indspillede kode i din procedure.

Beskyt ark - Tillad VBA at foretage ændringer

Som standard, når du beskytter et ark, gælder beskyttelsen for VBA -operationer ud over brugerhandlinger. Hvis VBA forsøger at ændre en låst celle, vil du se en runtime-fejl 1004. For at undgå dette kan du afbeskytte og genbeskytte dine regneark, når VBA skal interagere med dem:

123456789 Sub Edit_Sheet1 ()'Beskyttelsesark 1Regneark ("Ark1"). Beskyt ikke'Gør noget til ark 1'Beskyt ark 1Arbejdsark ("Ark1"). BeskytAfslut Sub

Det er dog let at glemme at afbeskytte og/eller genbeskytte dine regneark. Dette kan øge sandsynligheden for en kodningsfejl.

I stedet kan du bruge indstillingen UserInterFaceOnly. Når det er SAND, er regneark KUN beskyttet mod brugere, IKKE mod VBA.Din VBA -kode vil være fri til at redigere regnearket, ligesom hvis det var låst op.

To vigtige punkter om UserInterFaceOnly:

  • Denne indstilling er ikke tilgængelig fra menuen Beskyttelse af regneark (vist ovenfor). Det er en indstilling, der skal defineres i VBA.
  • Indstillingen gemmes ikke, når du lukker en projektmappe. Det skal defineres igen, hver gang en projektmappe åbnes.

Så for at indstille egenskaben UserInterFaceOnly skal du placere følgende procedure for Workbook_Open -hændelse i ThisWorkbook -modulet:

1234567 Private Sub Workbook_Open ()Dim ws Som regnearkFor hver gang i ThisWorkbook.Worksheetsws.Protect UserInterfaceOnly: = TrueNæste wsAfslut Sub

Workbook_Open er en særlig hændelsesprocedure, der kører hver gang projektmappen er åben. Det skal placeres i ThisWorkbook -modulet. Alternativt kan du bruge Auto_Open -hændelsesproceduren (ikke dækket her).

Fjern makro til alle ark

Denne makro fjerner beskyttelsen af ​​alle ark i en projektmappe:

123456789 'Fjern beskyttelse af alle regnearkSub UnProtectAllSheets ()Dim ws Som regnearkFor hver gang i regnearkws.Beskyt "adgangskode"Næste wsAfslut Sub

Beskyt alle ark Makro

Denne makro beskytter alle ark i en projektmappe:

123456789 'Beskyt alle regnearkSub ProtectAllSheets ()Dim ws Som regnearkFor hver gang i regnearkws.Protect "adgangskode"Næste wsAfslut Sub

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave