Excel ви позволява да защитите вашите работни книги в Excel от промени. Този урок ще ви покаже как да защитите или премахнете защитата на структурата на работната книга, използвайки VBA.
Защита на работната книга на VBA
VBA Workbook Protection ви позволява да заключите структурата на работната книга. Когато работната книга е защитена, потребителите няма да могат да добавят, изтриват, скриват / разкриват или защитават / премахват защитата на работни листове. Ако изграждате модел, вероятно искате да включите защитата на работната книга, за да предотвратите случайно изтриване на работни листове от потребители (или вие!).
UnProtect Workbook VBA
За да премахнете защитата на работна книга, просто използвайте следния ред код:
1 | Работни тетрадки („Книга1“). Премахнете защитата |
Забележка: този код ще работи само ако работната книга е защитена без парола. Ако е защитен с парола, трябва също да въведете паролата, за да го премахнете от защита:
Премахнете защитата на работната книга с парола
Този ред код ще премахне защитата на работна книга, която е защитена с парола:
1 | Работни книги („Книга1“). Премахнете защитата на паролата: = „парола“ |
или можете да пропуснете парола: =
1 | Работни книги („Книга1“). Премахнете защитата „парола“ |
Премахнете защитата на тази работна книга
Този код ще премахне защитата на ThisWorkbook (ThisWorkbook е работната книга, където се съхранява текущият код. Той никога няма да се промени).
1 | ThisWorkbook.Unprotect |
или премахнете защитата на тази работна книга с парола:
1 | ThisWorkbook.Unprotect "password" |
Премахнете защитата на ActiveWorkbook
Този код ще премахне защитата на ActiveWorbook.
1 | ActiveWorkbook.Unprotect |
или премахнете защитата на ActiveWorkbook с парола:
1 | ActiveWorkbook.Unprotect "password" |
Премахнете защитата на всички отворени работни книги
Този код ще премахне защитата на всички отворени работни книги:
12345678 | Sub UnprotectAllOpenWorkbooks ()Dim wb Като работна книгаЗа всяка wb в работни книгиwb.UnprotectСледваща wbEnd Sub |
UnProtect Workbook - Без да знаете парола
Ако трябва да премахнете защитата на работна книга, без да знаете паролата, има няколко добавки, които да ви помогнат. Бих препоръчал Ribbon Commander.
Премахнете защитата на всички листове в работната книга
След като премахнете защитата на работна книга, може също да искате да премахнете защитата на всички листове в работната книга. Ето процедура, която ще премахне защитата на всички листове:
12345678 | Sub UnProtectWorkbookAndAllSheets ()Затъмнете като работен листActiveWorkbook.UnprotectЗа всеки ws в работни листовеws.UnprotectСледващияEnd Sub |
Защитете работната тетрадка
Можете да защитите структурите на работната книга по същия начин, по който премахвате защитата.
Защита на работната книга без парола
Този ред код ще защитава работна книга (без парола)
1 | Работни тетрадки („Книга1“). Защитете |
Забележка: Често ще прилагам защита на работната книга без пароли, просто за да предотвратя случайно промени в работните книги.
Защитете работната книга с парола
Този код ще защити структурата на работната книга (с парола)
1 | Работни книги („Книга1“). Защитете „парола“ |
или:
1 | Работни книги ("Книга1"). Защита на паролата: = "парола" |
Excel файл с парола
Вместо защита на работната книга, може да искате да защитите с парола цял Excel файл. За да направите това с помощта на VBA, запишете като работна книга с парола:
1 | Работни книги ("Book1"). SaveAs "парола" |
Примери за защита / премахване на защита на работната книга
Покажете всички работни листове в защитена работна книга
Тази процедура ще премахне защитата на работната книга, ще скрие всички работни листове и ще защити отново работната книга
12345678910 | Sub UnprotectWB_Unhide_All_Sheets ()Затъмнете като работен листActiveWorkbook.UnprotectЗа всеки ws в работни листовеws.Visible = xlSheetVisibleСледващияActiveWorkbook.ProtectEnd Sub |
Защитете работната книга и всички листове
Тази процедура ще защити всички работни листове в работна книга и след това ще защити работната книга:
1234567891011 | Sub ProtectWB_Protect_All_Sheets ()Затъмнете като работен листActiveWorkbook.UnprotectЗа всеки ws в работни листовеws.ProtectСледващияActiveWorkbook.ProtectEnd Sub |
Можете да добавите и защита с парола:
1234567891011 | Sub ProtectWB_Protect_All_Sheets_Pswrd ()Затъмнете като работен листActiveWorkbook.Unprotect "password"За всеки ws в работни листовеws.Защитете "паролата"СледващияActiveWorkbook.Protect "парола"End Sub |