Šī apmācība jums iemācīs visu par Excel darblapas aizsardzību VBA - kā aizsargāt vai atsaukt darblapas programmā Excel.
Atceliet Excel darblapas aizsardzību bez paroles
Lai atsauktu darblapas aizsardzību, kas nav aizsargāta ar paroli, izmantojiet šo vienkāršo koda rindu:
1 | Darblapas ("Sheet1"). Neaizsargāt |
Atceliet Excel darblapas aizsardzību ar paroli
Lai atsauktu darblapas aizsardzību, kas ir aizsargāta ar paroli, jums jāievada arī parole:
1 | Darblapas ("Sheet1"). Atceliet "Paroles" aizsardzību |
Atsaukt lapas aizsardzību - pazaudēta parole
Lai atceltu darblapas aizsardzību, nezinot paroli, jums jāizmanto paroles atkopšanas pievienojumprogramma.
Aizsargājiet darblapas
Darblapas aizsardzība ļauj bloķēt noteiktus lapas aspektus no rediģēšanas.
Šī izvēlne ir atrodama Sākums> Formāts> Aizsargāt lapu vai ar peles labo pogu noklikšķinot uz cilnes Lapas nosaukums:
Visbiežāk to izmanto, lai aizsargātu “bloķētās” šūnas no rediģēšanas, ļaujot tikai galalietotājam rediģēt noteiktas šūnas.
Jūs varat bloķēt šūnas, atlasot tās un atverot Cilne Aizsardzība no Šūnu formatēšanas izvēlne (CTRL + 1).
Varat arī liegt lietotājam mainīt darblapas struktūru (ievietot, dzēst vai mainīt rindu un kolonnu izmērus) vai mijiedarboties ar automātiskajiem filtriem un daudz ko citu.
Aizsargāt darblapu - bez paroles
Iespējams, vēlēsities aizsargāt darblapu, neievadot paroli. Tas novērsīs nejaušas darblapas izmaiņas, vienlaikus nodrošinot lietotājam piekļuvi izmaiņu veikšanai, ja vēlaties.
1 | Darblapas ("Sheet1"). Aizsargāt |
Aizsargāt darblapu - aizsargāt ar paroli
1 | Darblapas ("Sheet1"). Aizsargājiet "Paroli" |
Aizsargāt darblapas iestatījumus
Iepriekš minētie piemēri aizsargās darblapas ar standarta aizsardzības iestatījumiem. Tā vietā, iespējams, vēlēsities pielāgot aizsargājamo:
12345 | Darblapas ("Sheet1"). Aizsargāt paroli: = strPassword, DrawingObjects: = True, Contents: = True, Scenāriji: = True, _UserInterfaceOnly: = True, AllowFormattingCells: = False, AllowFormattingColumns: = False, _AllowFormattingRows: = False, AllowInsertingColumns: = False, AllowInsertingRows: = False, _AllowInsertingHyperlinks: = False, AllowDeletedColumns: = False, AllowDeletedRows: = False, _AllowSorting: = False, AllowFiltering: = False, AllowUsingPivotTables: = False |
Tā vietā, lai izmantotu iepriekšminēto sintaksi, es iesaku ierakstīt makro ar vēlamajiem iestatījumiem (izvēlēts iepriekš esošajā izvēlnē Darblapas aizsardzība) un kopēt + ielīmēt ierakstīto kodu savā procedūrā.
Aizsargājiet lapu - ļaujiet VBA veikt izmaiņas
Pēc noklusējuma, kad aizsargājat lapu, aizsardzība tiek piemērota VBA darbībām papildus lietotāja darbībām. Ja VBA mēģina modificēt bloķētu šūnu, jūs redzēsit izpildlaika kļūdu 1004. Lai to izvairītos, varat atsaukt un atkārtoti aizsargāt savas darblapas, kad VBA ir nepieciešams ar tām mijiedarboties:
123456789 | Apakšdaļa Edit_Sheet1 ()'Neaizsargāt lapu1Darblapas ("Sheet1"). Neaizsargāt“Dariet kaut ko ar lapu” 1“Aizsargāt lapu 1Darblapas ("Sheet1"). AizsargātBeigu apakš |
Tomēr ir viegli aizmirst atcelt un/vai atkārtoti aizsargāt darblapas. Tas var palielināt kodēšanas kļūdas iespējamību.
Tā vietā varat izmantot iestatījumu UserInterFaceOnly. Ja ir PATIESA, darblapas tiks aizsargātas TIKAI no lietotājiem, nevis no VBA.Jūsu VBA kods varēs rediģēt darblapu tāpat kā tad, ja tā būtu atbloķēta.
Divi svarīgi punkti par UserInterFaceOnly:
- Šis iestatījums nav pieejams izvēlnē Darblapas aizsardzība (parādīts iepriekš). Tas ir iestatījums, kas jādefinē VBA.
- Iestatījums netiek saglabāts, aizverot darbgrāmatu. Katru reizi, atverot darbgrāmatu, tā ir jānosaka atkārtoti.
Tātad, lai iestatītu rekvizītu UserInterFaceOnly, šajā darbgrāmatas modulī jāievieto šāda notikuma Workbook_Open procedūra:
1234567 | Privāta apakšdarbgrāmata_atvērt ()Dim ws kā darblapaPar katru ws šajā darba grāmatā. Darba lapasws.Protect UserInterfaceOnly: = PatiesaNākamais wsBeigu apakš |
Workbook_Open ir īpaša notikuma procedūra, kas tiks veikta katru reizi, kad darbgrāmata ir atvērta. Tas jāievieto ThisWorkbook modulī. Varat arī izmantot notikuma procedūru Auto_Open (šeit nav apskatīta).
Atsaukt visu lapu makro aizsardzību
Šis makro noņems aizsardzību no visām darbgrāmatas izklājlapām:
123456789 | 'Neaizsargāt visas darblapasSub UnProtectAllSheets ()Dim ws kā darblapaPar katru ws darblapāsws.Aizsargāt "paroli"Nākamais wsBeigu apakš |
Aizsargāt visas lapas makro
Šis makro aizsargās visas darbgrāmatas lapas:
123456789 | 'Aizsargājiet visas darblapasSub ProtectAllSheets ()Dim ws kā darblapaPar katru ws darblapāsws.Aizsargājiet "paroli"Nākamais wsBeigu apakš |