VBA UnProtect Sheet - Използвайте VBA код, за да премахнете защитата на Excel Sheet

Съдържание

Excel VBA Unprotect Sheet

Има ситуации, в които защитаваме работните си листове, за да не позволяваме на потребителя да манипулира работните листове. Докато защитаваме работния лист, обикновено поддържаме една и съща парола. В тази статия ще ви покажем начина за премахване на защитата на листа с помощта на VBA кодиране.

Примери

Пример # 1

Освобождаването на листа е 99% по-просто от защитата им. Трябва ни само паролата, за да премахнем защитата на работния лист.

Първото нещо, което трябва да направим, е да споменем името на работния лист, което ще освободим от защита. Например, ако искате да премахнете защитата на листа с име „Данни за продажби“, тогава вашият код на VBA трябва да бъде такъв.

Работни листове („Данни за продажбите“)

След това отворете метода Unprotect.

Както виждаме на горното изображение, не виждаме никакъв списък на IntelliSense, който да ни помогне. Това прави работата по-трудна, особено за новия обучаем.

За да преодолея това, обикновено разчитам на декларирането на променлива на VBA като „Работен лист“.

Код:

Sub Unpretect_Example1 () Dim Ws As Worksheet End Sub

Сега задайте декларираната променлива на съответния лист.

Код:

Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") End Sub

Сега използвайте променлива за достъп до всички свойства и методи на декларираната променлива.

Както можете да видите на горното изображение, ние можем да получим достъп до всички свойства и методи. Изберете метода “Unprotect” от списъка IntelliSense.

Той иска паролата за премахване на защитата на листа. Задал съм паролата като „Excel @ 1234“, така че ще я предоставя същата.

Това ще премахне защитата на работния лист, наречен „Данни за продажбите“.

Код:

Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") Ws.Unprotect Password: = "Excel @ 1234" End Sub

Ако няма парола, тогава просто трябва да използваме метода „Unprotect“ и да игнорираме параметъра „Password“.

Код:

Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") 'Променете името на работния лист според вашето изискване Ws.Unprotect' Ако няма парола, просто предайте метода "UnProtect" End Sub

Ако има някаква парола, тогава трябва да я въведем в двойни кавички. Паролата е чувствителна към малки и големи букви, така че помнете ги внимателно.

Пример # 2 - Отстранете защитата на всички листове на Excel само с едно щракване

Видяхме как да премахнем защитата на конкретния работен лист. Представете си, че имате много работни листове и всички работни листове са защитени с една и съща парола, тогава не можем да продължаваме да пишем кодове за всеки работен лист поотделно.

В тези случаи трябва да използваме цикли, за да обиколим колекцията от обекти на работния лист и да ги освободим с лекота.

Кодът по-долу ще премине през всички работни листове и ще премахне защитата на листа.

Код:

Sub Unpretect_Example2 () Dim Ws As Worksheet за всеки Ws в ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 1234" 'Променете паролата, както споменахте, докато ги защитавате. Следващ Ws End Sub

Пример # 3 - Специални ситуации

Ситуация 1: Някога предполагали ли сте, че предоставената парола е грешна. Когато предоставената парола е грешна, ще получим 1004: Грешка във времето на изпълнение.

За да се справим с тези грешки, можем да използваме опцията „On Error GoTo Label“. Кодът по-долу е пример за същото.

Код:

Sub Unpretect_Example3 () Dim Ws As Workheet за всеки Ws в ActiveWorkbook. Работни листове за грешка GoTo Errormessage Ws.Unprotect Password: = "Excel @ 1234" 'Променете паролата, както сте посочили, докато ги защитавате. Съобщение за грешка: MsgBox "Грешна парола" Следващ Ws End Sub

Горният код ще покаже хубаво поле за съобщение с надпис „Грешната парола“.

Ситуация 2: Когато листът е защитен без парола и ако предоставите произволна парола, той все още ще премахне защитата на работния лист, без да показва грешки.

Ситуация 3: Когато листът е защитен с парола, но ако не предоставите никаква парола, тогава VBA ще се появи като поле за въвеждане на парола, за да въведете паролата.

В горното поле за въвеждане трябва да въведем нашата парола, за да премахнем защитата на работния лист. Ако кликнете върху бутона Отказ, той ще излезе от подпроцедурата на VBA, без да показва нищо, освен ако няма поле за съобщение на потребителя.

Интересни статии...