VBA Kaitse / Unprotect töölehed

See õpetus õpetab teile kõike Exceli töölehe kaitse kohta VBA -s - kuidas Exceli töölehti kaitsta või kaitsest vabastada.

Tühistage Exceli töölehe kaitse ilma paroolita

Parooliga kaitstud töölehe kaitsest vabastamiseks kasutage seda lihtsat koodirida:

1 Töölehed ("Sheet1"). Tühista kaitse

Vabastage Exceli töölehe kaitse parooliga

Parooliga kaitstud töölehe kaitse tühistamiseks peate sisestama ka parooli.

1 Töölehed ("Sheet1"). Tühistage "Parooli" kaitse

Tühista lehe kaitse - kaotatud parool

Töölehe kaitse tühistamiseks ilma parooli teadmata peate kasutama parooli taastamise lisandmoodulit.

Kaitske töölehti

Töölehe kaitse võimaldab teil lehe teatud aspektid redigeerimise eest lukustada.

See menüü on leitav Avaleht> Vorming> Kaitse lehte või paremklõpsake vahekaardi Leht nime:

Enamasti kasutatakse seda lukustatud lahtrite kaitsmiseks redigeerimise eest, võimaldades lõppkasutajal redigeerida ainult teatud lahtreid.

Saate lahtrid lukustada, valides need ja avades Vahekaart Kaitse selle Lahtrite vormindamise menüü (CTRL + 1).

Samuti saate takistada kasutajal töölehe struktuuri muutmist (ridade ja veergude sisestamist, kustutamist või suuruse muutmist) või automaatsete filtritega suhtlemist ja palju muud.

Kaitske töölehte - ilma paroolita

Võib -olla soovite töölehte kaitsta parooli sisestamata. See hoiab ära töölehe juhusliku muutmise, andes samas kasutajale soovi korral muudatuste tegemiseks juurdepääsu.

1 Töölehed ("Sheet1"). Kaitsta

Kaitske töölehte - paroolikaitse

1 Töölehed ("Sheet1"). Kaitske parooli

Kaitske töölehe seadeid

Ülaltoodud näited kaitsevad töölehti standardsete kaitseseadetega. Selle asemel võiksite kohandada seda, mis on kaitstud.

12345 Töölehed ("Sheet1"). Kaitske parooli: = strPassword, DrawingObjects: = True, Contents: = True, Scenarios: = True, _UserInterfaceOnly: = Tõsi, AllowFormattingCells: = Vale, AllowFormattingColumns: = Vale, _AllowFormattingRows: = False, AllowInsertingColumns: = False, AllowInsertingRows: = False, _AllowInsertingHyperlinks: = False, AllowDeletedColumns: = False, AllowDeletedRows: = False, _AllowSorting: = False, AllowFiltering: = False, AllowUsingPivotTables: = False

Ülaltoodud süntaksi kasutamise asemel soovitan salvestada soovitud sätetega makro (mis on valitud ülaltoodud menüü Töölehe kaitse abil) ja salvestatud koodi kopeerida + kleepida oma protseduuri.

Kaitse lehte - lubage VBA -l muudatusi teha

Kui kaitsete lehte, kehtib see vaikimisi lisaks kasutaja toimingutele ka VBA toimingute suhtes. Kui VBA üritab lukustatud lahtrit muuta, näete käitustõrge 1004. Selle vältimiseks võite oma töölehtede kaitse ja uuesti kaitsta, kui VBA peab nendega suhtlema:

123456789 Alam Redigeerimisleht1 ()„Kaitske leht 1Töölehed ("Sheet1"). Tühista kaitse„Tehke lehele midagi” 1„Kaitske leht 1Töölehed ("Sheet1"). KaitstaEnd Sub

Siiski on lihtne unustada oma töölehtede kaitse ja/või uuesti kaitsmine. See võib suurendada kodeerimisvea tõenäosust.

Selle asemel saate kasutada sätet UserInterFaceOnly. Kui see on tõene, on töölehed AINULT kaitstud kasutajate, mitte VBA eest.Teie VBA -koodi saab töölehte tasuta muuta, nagu see oleks lukustamata.

Kaks olulist punkti UserInterFaceOnly kohta:

  • See säte pole töölehe kaitse menüüst saadaval (näidatud ülal). See on seade, mis tuleb VBA -s määratleda.
  • Töövihiku sulgemisel seadistust ei salvestata. See tuleb iga kord töövihiku avamisel uuesti määratleda.

Nii et atribuudi UserInterFaceOnly määramiseks peaksite selle töövihiku moodulisse asetama järgmise sündmuse protseduuri Workbook_Open:

1234567 Privaatne alamtöövihik_Avatud ()Dim ws töölehenaIga töö jaoks käesolevas töövihikus. Töölehedws.Protect UserInterfaceOnly: = TõsiJärgmine wsEnd Sub

Workbook_Open on eriline sündmuste protseduur, mis käivitatakse iga kord, kui töövihik on avatud. See tuleb paigutada käesoleva töövihiku moodulisse. Teise võimalusena võite kasutada sündmuste protseduuri Auto_Open (siin ei käsitleta).

Tühista kõigi lehtede makro kaitse

See makro eemaldab töövihiku kõikide arvutustabelite kaitse:

123456789 'Tühista kõigi töölehtede kaitseSub UnProtectAllSheets ()Dim ws töölehenaIga ws töölehtedelws. Kaitske parooliJärgmine wsEnd Sub

Kaitse kõigi lehtede makro

See makro kaitseb kõiki töövihiku lehti:

123456789 „Kaitske kõiki töölehtiSub ProtectAllSheets ()Dim ws töölehenaIga ws töölehtedelws.Kaitse "parool"Järgmine wsEnd Sub

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave