VBA Protect / Unprotect radni listovi

Ovaj će vas vodič naučiti sve o zaštiti Excel radnog lista u VBA - Kako zaštititi ili ukloniti zaštitu radnih listova u Excelu.

Uklonite zaštitu Excel radnog lista bez lozinke

Za uklanjanje zaštite radnog lista koji nije zaštićen lozinkom upotrijebite ovaj jednostavan red koda:

1 Radni listovi ("List1"). Uklonite zaštitu

Uklonite zaštitu Excel radnog lista lozinkom

Da biste uklonili zaštitu s radnog lista zaštićenog lozinkom, morate unijeti i lozinku:

1 Radni listovi ("List1"). Uklonite zaštitu "Lozinka"

Ukloni zaštitu lista - izgubljena lozinka

Da biste uklonili zaštitu radnog lista bez poznavanja lozinke, morate upotrijebiti dodatak za oporavak lozinke.

Zaštitite radne listove

Zaštita radnog lista omogućuje vam zaključavanje određenih aspekata lista od uređivanja.

Ovaj se izbornik nalazi u Početna> Format> Zaštitni list ili desnim klikom na naziv kartice Sheet:

Najčešće se to koristi za zaštitu "zaključanih" ćelija od uređivanja, dopuštajući samo krajnjem korisniku uređivanje određenih ćelija.

Ćelije možete zaključati odabirom i otvaranjem datoteke Kartica zaštite od Izbornik oblikovanja ćelija (CTRL + 1).

Također možete spriječiti korisnika da mijenja strukturu radnog lista (umetanje, brisanje ili promjenu veličine redaka i stupaca), niti u interakciji s automatskim filterima i još mnogo toga.

Zaštita radnog lista - bez lozinke

Možda biste htjeli zaštititi radni list bez unosa lozinke. To će spriječiti slučajne promjene radnog lista, a korisniku će omogućiti pristup do izmjena po želji.

1 Radni listovi ("List1"). Zaštitite

Zaštiti radni list - Zaštita lozinkom

1 Radni listovi ("List 1"). Zaštitite "Lozinku"

Zaštitite postavke radnog lista

Gornji primjeri štitit će radne listove standardnim postavkama zaštite. Umjesto toga, možda biste htjeli prilagoditi ono što je zaštićeno:

12345 Radni listovi ("List1"). Zaštita lozinke: = strPassword, DrawingObjects: = True, Sadržaj: = True, Scenariji: = 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

Umjesto korištenja gornje sintakse, preporučujem snimanje makronaredbi sa željenim postavkama (odabranim s izbornikom Zaštita radnog lista iznad) i kopiranje + lijepljenje snimljenog koda u vaš postupak.

Zaštiti list - Dopustite VBA -u da vrši izmjene

Prema zadanim postavkama, kada štitite list, zaštita se primjenjuje i na VBA operacije, osim na korisničke. Ako VBA pokuša izmijeniti zaključanu ćeliju, vidjet ćete pogrešku tijekom izvođenja 1004. Kako biste to izbjegli, mogli biste poništiti zaštitu i ponovno zaštititi svoje radne listove kad god VBA mora stupiti u interakciju s njima:

123456789 Sub Edit_Sheet1 ()'Ukloni zaštitu s lista1Radni listovi ("List1"). Uklonite zaštitu'Učinite nešto na listu1'Ponovno zaštitite list1Radni listovi ("List1"). ZaštititeKraj podm

Međutim, lako je zaboraviti ukloniti zaštitu i/ili ponovno zaštititi svoje radne listove. To može povećati vjerojatnost greške u kodiranju.

Umjesto toga, možete koristiti postavku UserInterFaceOnly. Kada je TRUE, radni listovi bit će zaštićeni SAMO od korisnika, NE od VBA.Vaš VBA kôd moći će urediti radni list isto kao da je otključan.

Dvije važne točke o UserInterFaceOnly:

  • Ova postavka nije dostupna u izborniku Zaštita radnog lista (prikazano gore). To je postavka koja se mora definirati u VBA.
  • Postavka se ne sprema kada zatvorite radnu knjigu. Mora se ponovno definirati svaki put pri otvaranju radne knjige.

Dakle, da biste postavili svojstvo UserInterFaceOnly, trebate postaviti sljedeću proceduru događaja Workbook_Open u modul ThisWorkbook:

1234567 Privatna pomoćna radna knjiga_Open ()Zatamni kao radni listZa svaki ws u ThisWorkbook.Worksheetsws.Protect UserInterfaceOnly: = IstinaSljedeći wsKraj podm

Workbook_Open poseban je postupak za događaje koji će se izvoditi svaki put kada se radna knjiga otvori. Mora se staviti u modul ThisWorkbook. Alternativno, možete koristiti postupak događaja Auto_Open (ovdje nije obrađen).

Poništite zaštitu makronaredbi svih listova

Ovaj će makro ukloniti zaštitu sa svih listova u radnoj knjizi:

123456789 'Uklonite zaštitu sa svih radnih listovaSub UnProtectAllSheets ()Zatamni kao radni listZa svaki ws u radnim listovimaws.Unprotect "password"Sljedeći wsKraj podm

Zaštitite sve makroe listova

Ovaj će makro zaštititi sve listove u radnoj knjizi:

123456789 'Zaštitite sve radne listoveSub ProtectAllSheets ()Zatamni kao radni listZa svaki ws u radnim listovimaws.Zaštiti "lozinku"Sljedeći wsKraj podm

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave