VBA UnProtect Sheet - Użyj kodu VBA, aby wyłączyć ochronę arkusza Excel

Arkusz niezabezpieczenia programu Excel VBA

Są sytuacje, w których chronimy nasze arkusze, aby uniemożliwić użytkownikowi manipulowanie arkuszami. Chroniąc arkusz roboczy, zwykle utrzymujemy to samo hasło. W tym artykule pokażemy, jak wyłączyć ochronę arkusza za pomocą kodowania VBA.

Przykłady

Przykład 1

Usunięcie ochrony arkusza jest 99% prostsze niż ich ochrona. Potrzebujemy tylko hasła, aby wyłączyć ochronę arkusza.

Pierwszą rzeczą, którą musimy zrobić, jest wspomnienie nazwy arkusza roboczego, którą zamierzamy wyłączyć ochronę. Na przykład, jeśli chcesz wyłączyć ochronę arkusza o nazwie „Dane sprzedaży”, kod VBA powinien wyglądać tak.

Arkusze robocze („Dane sprzedaży”)

Następnie uzyskaj dostęp do metody Unprotect.

Jak widać na powyższym obrazku, nie widzimy żadnej listy IntelliSense, która mogłaby nam pomóc. To sprawia, że ​​praca jest trudniejsza, szczególnie dla nowego ucznia.

Aby temu zaradzić, zwykle polegam na deklarowaniu zmiennej VBA jako „Arkusz roboczy”.

Kod:

Sub Unpretect_Example1 () Dim Ws As Worksheet End Sub

Teraz ustaw zadeklarowaną zmienną na odpowiedni arkusz.

Kod:

Sub Unpretect_Example1 () Dim Ws As Zestaw arkuszy Ws = Arkusze robocze ("Dane sprzedaży") End Sub

Teraz użyj zmiennej, aby uzyskać dostęp do wszystkich właściwości i metod zadeklarowanej zmiennej.

Jak widać na powyższym obrazku, mamy dostęp do wszystkich właściwości i metod. Wybierz metodę „Unprotect” z listy IntelliSense.

Prosi o hasło, aby wyłączyć ochronę arkusza. Ustawiłem hasło jako „Excel @ 1234”, więc podam to samo.

Spowoduje to wyłączenie ochrony arkusza o nazwie „Dane sprzedaży”.

Kod:

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

Jeśli nie ma hasła, wystarczy skorzystać z metody „Unprotect” i zignorować parametr „Password”.

Kod:

Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") 'Zmień nazwę arkusza zgodnie z wymaganiami Ws.Unprotect' Jeśli nie ma hasła, po prostu przekaż metodę "UnProtect" End Sub

Jeśli jest jakieś hasło, musimy je wpisać w cudzysłowach. W haśle rozróżniana jest wielkość liter, więc zapamiętaj je dokładnie.

Przykład # 2 - Odblokuj wszystkie arkusze Excela jednym kliknięciem

Widzieliśmy, jak wyłączyć ochronę danego arkusza. Wyobraź sobie, że masz wiele arkuszy roboczych, a wszystkie arkusze są chronione tym samym hasłem, wtedy nie możemy dalej pisać kodów dla każdego arkusza osobno.

W takich przypadkach musimy użyć pętli, aby zapętlić kolekcję obiektów arkusza i z łatwością je odblokować.

Poniższy kod przejdzie przez wszystkie arkusze i wyłączy ochronę arkusza.

Kod:

Sub Unpretect_Example2 () Dim Ws As Worksheet For each Ws In ActiveWorkbook.Worksheets Ws.Unprotect Hasło: = "Excel @ 1234" 'Zmień hasło, jak wspomniałeś, chroniąc je. Następny Ws End Sub

Przykład 3 - Sytuacje specjalne

Sytuacja 1: Czy kiedykolwiek wyobrażałem sobie, że podane hasło jest nieprawidłowe. Jeśli podane hasło jest nieprawidłowe, otrzymamy komunikat 1004: Run Time Error.

Aby poradzić sobie z tymi błędami, możemy skorzystać z opcji „On Error GoTo Label”. Poniższy kod jest przykładem tego samego.

Kod:

Sub Unpretect_Example3 () Dim Ws As Worksheet For each Ws in ActiveWorkbook.Worksheets On Error GoTo Errormessage Ws.Unprotect Hasło: = "Excel @ 1234" 'Zmień hasło, jak wspomniałeś, chroniąc je. Errormessage: MsgBox "Złe hasło" Next Ws End Sub

Powyższy kod spowoduje wyświetlenie ładnego okna z komunikatem „Złe hasło”.

Sytuacja 2: Gdy arkusz jest chroniony bez hasła i jeśli podasz losowe hasło, nadal nie będzie on chronił arkusza bez pokazywania jakichkolwiek błędów.

Sytuacja 3: Gdy arkusz jest chroniony hasłem, ale jeśli nie podasz żadnego hasła, VBA pojawi się jako pole wprowadzania hasła, aby wprowadzić hasło.

W powyższym polu wejściowym musimy wprowadzić nasze hasło, aby wyłączyć ochronę arkusza. Kliknięcie przycisku Anuluj spowoduje wyjście z podprocedury VBA bez pokazywania niczego, chyba że pojawi się okno komunikatu użytkownika.

Interesujące artykuły...