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 |