Foglio UnProtect VBA

Foglio di rimozione della protezione VBA di Excel

Ci sono situazioni in cui proteggiamo i nostri fogli di lavoro per impedire all'utente di manipolare i fogli di lavoro. Pur proteggendo il foglio di lavoro, di solito manteniamo la stessa password. In questo articolo, ti mostreremo come rimuovere la protezione del foglio utilizzando la codifica VBA.

Esempi

Puoi scaricare questo modello Excel di foglio VBA Unprotect qui - Modello Excel di foglio VBA Unprotect

Esempio 1

Rimuovere la protezione del foglio è del 99% più semplice che proteggerli, abbiamo solo bisogno della password per rimuovere la protezione del foglio di lavoro.

La prima cosa che dobbiamo fare è menzionare il nome del foglio di lavoro che stiamo per rimuovere dalla protezione. Ad esempio, se stai cercando di rimuovere la protezione del foglio denominato "Dati di vendita", il tuo codice VBA dovrebbe essere così.

Fogli di lavoro ("Dati di vendita")

Quindi accedi al metodo Unprotect.

Come possiamo vedere nell'immagine sopra, non vediamo alcun tipo di elenco IntelliSense per aiutarci. Questo rende il lavoro più difficile, soprattutto per il nuovo studente.

Per ovviare a questo, di solito mi affido alla dichiarazione di una variabile VBA come "Foglio di lavoro".

Codice:

 Sub Unpretect_Example1 () Dim Ws As Worksheet End Sub 

Ora imposta la variabile dichiarata sul rispettivo foglio.

Codice:

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

Ora usa una variabile per accedere a tutte le proprietà e metodi della variabile dichiarata.

Come puoi vedere nell'immagine sopra possiamo accedere a tutte le proprietà e metodi. Selezionare il metodo "Unprotect" dall'elenco IntelliSense.

Chiede la password per rimuovere la protezione del foglio. Ho impostato la password come "Excel @ 1234", quindi fornirò la stessa password.

In questo modo verrà rimossa la protezione del foglio di lavoro denominato "Dati di vendita".

Codice:

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

Se non è presente una password, è sufficiente utilizzare il metodo "Unprotect" e ignorare il parametro "Password".

Codice:

 Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") 'Cambia il nome del foglio di lavoro secondo i tuoi requisiti Ws.Unprotect' Se non c'è password basta passare il metodo "UnProtect" End Sub 

Se è presente una password, è necessario inserirla tra virgolette. La password fa distinzione tra maiuscole e minuscole, quindi ricordale attentamente.

Esempio n. 2: rimuovere la protezione da tutti i fogli Excel con un semplice clic

Abbiamo visto come rimuovere la protezione da un particolare foglio di lavoro. Immagina di avere molti fogli di lavoro e tutti i fogli di lavoro sono protetti con la stessa password, quindi non possiamo continuare a scrivere codici per ogni foglio di lavoro separatamente.

In questi casi, è necessario utilizzare i cicli per eseguire il ciclo attraverso la raccolta di oggetti del foglio di lavoro e rimuovere la protezione con facilità.

Il codice seguente eseguirà il ciclo di tutti i fogli di lavoro e rimuoverà la protezione del foglio.

Codice:

Sub Unpretect_Example2 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 1234" 'Cambia la password come hai menzionato proteggendola. Next Ws End Sub

Esempio n. 3 - Situazioni speciali

Situazione 1: ho mai immaginato quando la password fornita è sbagliata. Quando la password fornita è sbagliata, otterremo 1004: Run Time Error.

Per gestire questi errori possiamo utilizzare l'opzione "On Error GoTo Label". Di seguito il codice è l'esempio dello stesso.

Codice:

Sub Unpretect_Example3 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets On Error GoTo Errormessage Ws.Unprotect Password: = "Excel @ 1234" 'Cambia la password come hai menzionato proteggendola. Messaggio di errore: MsgBox "Password errata" Next Ws End Sub

Il codice sopra mostrerà una bella finestra di messaggio che dice "Password errata".

Situazione 2: quando il foglio è protetto senza password e se fornisci una password casuale, verrà comunque rimossa la protezione del foglio di lavoro senza mostrare alcun tipo di errore.

Situazione 3: quando il foglio è protetto da una password ma se non si fornisce alcuna password, VBA apparirà come una casella di immissione della password per inserire la password.

Nella casella di input sopra, dobbiamo inserire la nostra password per rimuovere la protezione del foglio di lavoro. Se si fa clic sul pulsante Annulla, si uscirà dalla sottoprocedura VBA senza mostrare nulla a meno che non sia presente una finestra di messaggio utente.