Pracovné listy pre ochranu / odomknutie VBA

Tento tutoriál vás naučí všetko o ochrane pracovného hárka programu Excel vo VBA - Ako chrániť alebo odomknúť pracovné hárky v programe Excel.

Zrušte ochranu listu programu Excel bez hesla

Ak chcete zrušiť ochranu pracovného hárka, ktorý nie je chránený heslom, použite tento jednoduchý riadok kódu:

1 Pracovné listy („List1“). Zrušte ochranu

Zrušte ochranu listu programu Excel heslom

Ak chcete zrušiť ochranu pracovného hárka chráneného heslom, musíte tiež zadať heslo:

1 Pracovné listy („List1“). Zrušte ochranu „hesla“

Zrušiť ochranu hárka - stratené heslo

Ak chcete zrušiť ochranu pracovného hárka bez znalosti hesla, musíte použiť doplnok na obnovenie hesla.

Chráňte pracovné listy

Ochrana pracovného hárka vám umožňuje uzamknúť niektoré aspekty listu pred úpravami.

Toto menu nájdete v Domov> Formát> Chrániť list alebo kliknutím pravým tlačidlom myši na názov karty Hárok:

Najčastejšie sa to používa na ochranu „uzamknutých“ buniek pred úpravami, čo umožňuje iba koncovému používateľovi upravovať určité bunky.

Bunky môžete zamknúť ich zvolením a otvorením Karta ochrany z Ponuka formátovania buniek (CTRL + 1).

Môžete tiež zabrániť používateľovi v zmene štruktúry pracovného hárka (vkladanie, odstraňovanie alebo zmena veľkosti riadkov a stĺpcov) alebo v interakcii s automatickými filtrami a oveľa viac.

Chráňte pracovný list - bez hesla

Možno budete chcieť chrániť pracovný hárok bez zadávania hesla. Zabráni sa tým náhodným zmenám v hárku a používateľovi bude poskytnutý prístup k prípadným zmenám.

1 Pracovné listy („List1“). Chráňte

List ochrany - ochrana heslom

1 Pracovné listy („List1“). Chráňte „heslo“

Chráňte nastavenia pracovného hárka

Vyššie uvedené príklady budú chrániť pracovné listy so štandardnými nastaveniami ochrany. Namiesto toho môžete chcieť prispôsobiť to, čo je chránené:

12345 Pracovné listy („List1“). Chrániť heslo: = strPassword, DrawingObjects: = pravda, obsah: = pravda, scenáre: = pravda, _UserInterfaceOnly: = True, AllowFormattingCells: = False, AllowFormattingColumns: = False, _AllowFormattingRows: = False, AllowInsertingColumns: = False, AllowInsertingRows: = False, _AllowInsertingHyperlinks: = False, AllowDeletingColumns: = False, AllowDeletingRows: = False, _AllowSorting: = False, AllowFiltering: = False, AllowUsingPivotTables: = False

Namiesto použitia vyššie uvedenej syntaxe odporúčam nahrať makro s požadovanými nastaveniami (zvolenými pomocou ponuky Ochrana pracovného hárka vyššie) a skopírovať + vložiť zaznamenaný kód do vášho postupu.

Chrániť list - umožniť VBA vykonávať zmeny

Keď chránite list, štandardne sa ochrana okrem operácií používateľa vzťahuje aj na operácie VBA. Ak sa VBA pokúsi upraviť uzamknutú bunku, zobrazí sa chyba pri spustení 1004. Aby ste tomu zabránili, môžete pracovné hárky odopnúť a znova chrániť vždy, keď s nimi VBA potrebuje komunikovať:

123456789 Sub Edit_Sheet1 ()„Nechrániť list 1Pracovné listy („List1“). Zrušte ochranu„Urobte niečo pre list 1„Chráňte list 1Pracovné listy („List1“). ChráňteKoniec pod

Je však ľahké zabudnúť na odstránenie pracovných hárkov a/alebo ich opätovnú ochranu. To môže zvýšiť pravdepodobnosť chyby kódovania.

Namiesto toho môžete použiť nastavenie UserInterFaceOnly. Keď je PRAVDA, pracovné listy budú LEN chránené pred používateľmi, NIE pred VBA.Váš kód VBA bude môcť pracovný hárok upravovať rovnako, ako keby bol odomknutý.

Dva dôležité body o UserInterFaceOnly:

  • Toto nastavenie nie je k dispozícii v ponuke Ochrana pracovného hárka (zobrazené vyššie). Je to nastavenie, ktoré musí byť definované vo VBA.
  • Keď zavriete zošit, nastavenie sa neuloží. Musí sa nanovo definovať pri každom otvorení zošita.

Aby ste teda mohli nastaviť vlastnosť UserInterFaceOnly, mali by ste do modulu ThisWorkbook umiestniť nasledujúci postup udalosti Workbook_Open:

1234567 Súkromný čiastkový zošit_Otvorený ()Dim ws As worksheetZa každé ws v ThisWorkbook.Worksheetsws.Protect UserInterfaceOnly: = TrueĎalšie wsKoniec pod

Workbook_Open je procedúra špeciálnej udalosti, ktorá sa spustí vždy, keď je zošit otvorený. Musí byť vložený do modulu ThisWorkbook. Alternatívne môžete použiť procedúru udalosti Auto_Open (tu nie je zahrnutá).

Zrušte ochranu makra všetkých hárkov

Toto makro odstráni ochranu zo všetkých hárkov v zošite:

123456789 „Zrušiť ochranu všetkých pracovných hárkovSub UnProtectAllSheets ()Dim ws As worksheetZa každé ws v pracovných listochws.Zrušte ochranu „hesla“Ďalšie wsKoniec pod

Chráňte všetky listy makro

Toto makro ochráni všetky listy v zošite:

123456789 „Chráňte všetky pracovné listySub ProtectAllSheets ()Dim ws As worksheetZa každé ws v pracovných listochws.Chráňte "heslo"Ďalšie wsKoniec pod

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave