Excel VBA Unprotect Sheet

W programie Excel mamy opcję, dzięki której możemy chronić nasze arkusze i pliki programu Excel przed usunięciem, zmianą nazwy i zapisaniem danych przed wszelkimi innymi niepotrzebnymi zmianami. Opcja nazywa się Chroń arkusz i Chroń skoroszyt, który znajduje się w sekcji Zmiany w wstążce menu Recenzja . Możemy ustawić hasło, za pomocą którego możemy zapisać wybrany arkusz przed wszelkimi dokonanymi zmianami. Ale co mówię, można to również zautomatyzować za pomocą kodu VBA. Tak, możemy utworzyć kod lub makro, dzięki któremu możemy automatycznie zablokować arkusz i skoroszyt. Ale w tym artykule chodzi o niezabezpieczeniu arkusza.

Niezabezpieczenie arkusza jest również dość łatwym procesem, ponieważ chroni arkusz. Aby zabezpieczyć arkusz, musimy wprowadzić hasło, którego użyliśmy podczas blokowania tego arkusza. Aby zabezpieczyć arkusz, wystarczy wybrać nazwę arkusza roboczego i funkcję o nazwie Unprotect . Jeśli jest to dostępne w VBA, to jest to tylko jeden wiersz. Ale jeśli tak nie jest, musimy poszukać innego sposobu na zrobienie tego, co zobaczymy w poniższych przykładach.

Jak wyłączyć ochronę arkusza w programie Excel VBA?

Dowiemy się, jak odblokować arkusz w programie Excel za pomocą kodu VBA.

Możesz pobrać ten szablon Excel Arkusz niezabezpieczony VBA tutaj - Szablon Excel Arkusz niezabezpieczony

Arkusz niezabezpieczony VBA - przykład nr 1

Po pierwsze, zobaczylibyśmy prosty przykład, aby odblokować arkusz. W tym celu wykonaj następujące czynności:

Krok 1: Najpierw otwórz moduł z karty menu Wstaw, jak pokazano poniżej.

Krok 2: Teraz napisz podprocedurę arkusza VBA Unprotect. Lub możemy wybrać dowolną inną nazwę, aby ją zdefiniować.

Kod:

 Sub VBA_Unprotect () End Sub 

Krok 3: Zdefiniuj zmienną o nazwie Arkusz o dowolnej nazwie. Najlepiej nazwa, która przypomina arkusz roboczy, taki jak ExSheet

Kod:

 Sub VBA_Unprotect () Dim ExSheet As Workheet End Sub 

Krok 4: Teraz ustaw zdefiniowaną zmienną arkusza roboczego o nazwie arkusza, który chcemy zabezpieczyć. Tutaj nazwa tego arkusza to Arkusz1 .

Kod:

 Sub VBA_Unprotect () Dim ExSheet As Set Arkusz Zestaw ExSheet = Arkusze („Arkusz1”) Koniec Sub 

Krok 5: Teraz przypisz funkcję Unprotect znajdującą się na liście rozwijanej VBA do zmiennej arkusza ExSheet .

Kod:

 Sub VBA_Unprotect () Dim ExSheet As Setheet Set ExSheet = Arkusze robocze („Arkusz1”) ExSheet.Unprotect End Sub 

Krok 6: Teraz podaj hasło, które podaliśmy dla zablokowania tego arkusza. Tutaj hasło to „Open1212”. I może to być wszystko, co zależy od wyboru użytkownika.

Kod:

 Sub VBA_Unprotect () Dim ExSheet As Set Arkusz Zestaw ExSheet = Arkusze („Arkusz1”) ExSheet.Unprotect Hasło: = „Open1212” End Sub 

Krok 7: Teraz najpierw będziemy chronić Arkusz1, klikając kartę menu Recenzja i wybierając opcję Chroń arkusz .

Krok 8: Wprowadź hasło, które chcemy i kliknij OK, aby chronić arkusz.

Krok 9: Ponownie wprowadź hasło, aby potwierdzić.

Krok 10: Po zakończeniu zobaczymy, że nie możemy nic zmienić w tym arkuszu, nawet jeśli spróbujemy. Aby zabezpieczyć arkusz, skompilujemy nasz napisany kod i uruchomimy go.

Zobaczymy, kiedy nasz kod zostanie wykonany, możemy teraz dokonywać zmian w Arkuszu1 .

Krok 11: Co się stanie, jeśli usuniemy lub zmienimy wiersz kodu, w którym wstawiliśmy hasło i sprawimy, że będzie działać aż do wyłączenia funkcji ochrony, jak pokazano poniżej? Zobaczmy, co się stanie, jeśli to zrobimy.

Kod:

 Sub VBA_Unprotect () Dim ExSheet As Setheet Set ExSheet = Arkusze robocze („Arkusz1”) ExSheet.Unprotect End Sub 

Krok 12: Teraz ponownie uruchom pełny kod. Zobaczymy, pojawi się okno komunikatu z prośbą o podanie hasła. Podaj hasło tutaj, które wybraliśmy, chroniąc arkusz i kliknij OK.

Dzięki temu procesowi możemy również zabezpieczyć żądany arkusz.

Arkusz niezabezpieczający VBA - przykład nr 2

Istnieje inny sposób niechronienia arkuszy. To najłatwiejszy i najprostszy sposób na zrobienie tego. W tym celu wykonaj następujące kroki:

Krok 1: Napisz podprocedurę dla VBA Unprotect, jak pokazano poniżej.

Kod:

 Sub VBA_Unprotect2 () End Sub 

Krok 2: Użyj funkcji Arkusze i wybierz arkusz, który chcemy chronić. Tutaj znowu ten arkusz to Arkusz1 .

Kod:

 Sub VBA_Unprotect2 () Arkusze robocze („Arkusz1”) Koniec Sub 

Krok 3: W podobny sposób, jak pokazano w przykładzie 1, użyjemy polecenia Unprotect wraz z hasłem, którego użyliśmy podczas blokowania arkusza. Tutaj nasze hasło do niezabezpieczenia jest również takie samo jak „ Open1212 ”.

Kod:

 Sub VBA_Unprotect2 () Arkusze robocze („Arkusz1”). Nie chroń hasła: = „Open1212” End Sub 

Teraz nasz kod jest gotowy. Aby to przetestować, najpierw zabezpiecz arkusz w taki sam sposób, jak w przykładzie 1 i uruchom ten kod, aby go nie chronić.

Arkusz niezabezpieczający VBA - przykład nr 3

Co jeśli powiem, możemy ponownie napisać kod, w którym nie musimy wybierać nazwy arkusza, który chcemy zabezpieczyć. Tak, można to zrobić za pomocą pętli. W tym celu wykonaj następujące kroki:

Krok 1: Ponownie w tym celu otwórz moduł i napisz podprocedurę arkusza VBA Unprotect, jak pokazano poniżej.

Kod:

 Sub VBA_Unprotect3 () End Sub 

Krok 2: Użyj DIM do zdefiniowania zmiennej dla arkusza roboczego jako arkusza kalkulacyjnego. Jest to ta sama linia, której użyliśmy w powyższych przykładach.

Kod:

 Sub VBA_Unprotect3 () Dim ExSheet As Workheet End Sub 

Krok 3: Otwórz pętlę For-Next, w której będziemy zapisywać warunki arkusza bez ochrony.

Kod:

 Sub VBA_Unprotect3 () Dim ExSheet As Arkusz roboczy dla następnego arkusza Ex End End Sub 

Krok 4: Napisz warunek dla każdego otwartego aktywnego skoroszytu wybiera bieżący aktywny arkusz, jak pokazano poniżej.

Kod:

 Sub VBA_Unprotect3 () Dim ExSheet jako arkusz roboczy dla każdego arkusza ExS w ActiveWorkbook.Worksheets Następny arkusz końcowy Ex Sub 

Krok 5: Teraz w podobny sposób, jak pokazano w powyższych przykładach, użyjemy zdefiniowanych zmiennych wraz z funkcją Unprotect do odblokowania arkusza. Tutaj również możemy używać Hasła lub nie. To jest opcjonalny sposób.

Kod:

 Sub VBA_Unprotect3 () Dim ExSheet jako arkusz roboczy dla każdego arkusza ExSheet w ActiveWorkbook.Worksheets ExSheet.Unprotect Hasło: = „Open1212” Następny arkusz końcowy ExSheet 

Skompiluj kod i uruchom, jeśli nie znaleziono błędu.

W ten sposób możemy zabezpieczyć dowolny otwarty bieżący arkusz roboczy, nawet nie wybierając jego nazwy i sekwencji. Ten kod automatycznie uwzględni ten arkusz, który jest aktualnie wybrany i otwarty.

Plusy arkusza niezabezpieczonego Excel VBA

  • Powyższe procesy i przykłady są najłatwiejsze do zastosowania.
  • Możemy zabezpieczyć arkusz na dwa sposoby, podając samo hasło w kodzie lub bez podania hasła.
  • Działa to w taki sam sposób, jak ręcznie odblokowujemy arkusz.

Rzeczy do zapamiętania

  • Ponieważ proces ten jest dość łatwy do wdrożenia, automatyzacja może nie wymagać żadnej poprawy.
  • Możemy zmienić hasło za każdym razem, gdy ponawiamy proces ochrony i zabezpieczenia arkusza.
  • Możemy wybrać nazwę arkusza lub sekwencję arkusza, który chcemy go zabezpieczyć.
  • A kiedy to zrobisz, zapisz kod w arkuszu Macro enable excel, aby zabezpieczyć kod VBA przed zagubieniem.

Polecane artykuły

Jest to przewodnik po arkuszu niezabezpieczonym VBA. Tutaj omawiamy, jak odblokować arkusz w programie Excel za pomocą kodu VBA, a także praktyczne przykłady i szablon programu Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Zmienna publiczna VBA (przykłady)
  2. Numer formatu VBA z funkcją
  3. Wariant VBA z typami danych
  4. VBA Randomize | Szablony Excela
  5. VBA Environ

Kategoria: