Full de desprotecció de VBA | Utilitzeu el codi VBA per desprotegir el full d'Excel

Full de desprotecció de Excel VBA

Hi ha situacions en què protegim els nostres fulls de treball per evitar que l'usuari manipuli els fulls de treball. Tot i protegir el full de càlcul, normalment mantenim la mateixa contrasenya. En aquest article, us mostrarem la manera de desprotegir el full mitjançant la codificació VBA.

Exemples

Podeu descarregar aquesta plantilla Excel de fulls VBA Unprotect aquí: plantilla Excel de fulls VBA Unprotect

Exemple 1

Desprotegir el full és un 99% més senzill que protegir-lo, només necessitem la contrasenya per desprotegir el full de treball.

El primer que hem de fer és esmentar el nom del full de treball que desprotegirem. Per exemple, si voleu desprotegir el full anomenat "Dades de vendes", el vostre codi VBA hauria de ser així.

Fulls de treball ("Dades de vendes")

A continuació, accediu al mètode de desprotecció.

Com podem veure a la imatge anterior, no veiem cap tipus de llista IntelliSense que ens ajudi. Això fa que la feina sigui més dura, sobretot per al nou alumne.

Per superar-ho, normalment confio en declarar una variable VBA com a "full de treball".

Codi:

 Sub Unpretect_Example1 () Atenueu Ws com a final del full de treball Sub 

Ara configureu la variable declarada al full respectiu.

Codi:

 Sub Unpretect_Example1 () Atenuar Ws com a conjunt de fulls de treball Ws = Fulls de treball ("Dades de vendes") Finalitzar sub 

Ara utilitzeu una variable per accedir a totes les propietats i mètodes de la variable declarada.

Com podeu veure a la imatge anterior, podem accedir a totes les propietats i mètodes. Seleccioneu el mètode "Desprotegiu" de la llista IntelliSense.

Sol·licita la contrasenya per desprotegir el full. He configurat la contrasenya com a "Excel @ 1234", de manera que la proporcionaré igual.

Això desprotegirà el full de treball anomenat "Dades de vendes".

Codi:

 Sub Unpretect_Example1 () Atenuar Ws com a conjunt de fulls de treball Ws = Fulls de treball ("Dades de vendes") Ws.Unprotect Password: = "Excel @ 1234" End Sub 

Si no hi ha cap contrasenya, només hem d'utilitzar el mètode "Desprotegir" i ignorar el paràmetre "Contrasenya".

Codi:

 Sub Unpretect_Example1 () Atenuar Ws com a conjunt de fulls de treball Ws = Fulls de treball ("Dades de vendes") 'Canvieu el nom del full de càlcul segons el vostre requisit Ws. Desprotegiu' Si no hi ha cap contrasenya, només heu de passar el mètode "Desprotegir" 

Si hi ha alguna contrasenya, cal que introduïm la contrasenya entre cometes dobles. La contrasenya distingeix entre majúscules i minúscules, així que recordeu-les atentament.

Exemple 2: desprotegiu tots els fulls d'Excel amb només un clic

Hem vist com desprotegir el full de treball concret. Imagineu que teniu molts fulls de càlcul i que tots els fulls de treball estan protegits amb la mateixa contrasenya, de manera que no podem continuar escrivint codis per a cada full de treball per separat.

En aquests casos, hem d’utilitzar bucles per recórrer la col·lecció d’objectes del full de càlcul i desprotegir-los amb facilitat.

A sota, el codi recorrerà tots els fulls de treball i desprotegirà el full.

Codi:

 Sub Unpretect_Example2 () Atenueu Ws com a full de càlcul per a cada Ws d'ActiveWorkbook.Whesheets Ws.Unprotect Password: = "Excel @ 1234" 'Canvieu la contrasenya tal com heu esmentat protegint-les. Següent Ws End Sub 

Exemple 3: situacions especials

Situació 1: Alguna vegada m’he imaginat quan la contrasenya proporcionada és incorrecta. Quan la contrasenya proporcionada sigui incorrecta, ho aconseguirem 1004: Error de temps d'execució.

Per gestionar aquests errors podem utilitzar l'opció "On Error GoTo Label". A sota del codi hi ha l'exemple del mateix.

Codi:

 Sub Unpretect_Example3 () Atenueu Ws com a full de càlcul per a cada Ws a ActiveWorkbook.Whesheets on Error GoTo Errormessage Ws.Unprotect Password: = "Excel @ 1234" 'Canvieu la contrasenya tal com heu esmentat mentre la protegiu. Missatge d'error: MsgBox "Contrasenya incorrecta" Següent Ws End Sub 

El codi anterior mostrarà un bon quadre de missatges que diu "Contrasenya incorrecta".

Situació 2: Quan el full està protegit sense una contrasenya i si proporcioneu una contrasenya aleatòria, continuarà desprotegint el full de treball sense mostrar cap tipus d’error.

Situació 3: Quan el full està protegit per una contrasenya, però si no proporcioneu cap contrasenya, apareixerà VBA com a quadre d’entrada de contrasenya per introduir la contrasenya.

Al quadre d’entrada anterior, hem d’introduir la nostra contrasenya per desprotegir el full de càlcul. Si feu clic al botó Cancel·la, sortirà del subprocediment VBA sense mostrar res, tret que hi hagi algun quadre de missatge d'usuari.