Per una versione di Microsoft Excel 97 di questo articolo, vedere 157346.Per una versione di Microsoft Excel 98 di questo articolo, vedere 182482.
Sintomi
In Microsoft Office Excel, il codice macro di Microsoft Visual Basic, Applications Edition (VBA) che contiene "Behind" un foglio di lavoro o una cartella potrebbe non funzionare correttamente.
Causa
Ciò avverrà se entrambe le condizioni seguenti sono vere:
-
Il codice in questione è contenuto all'interno di una subroutine che viene eseguita automaticamente, ad esempio Auto_Open o Auto_Close subroutine.
-
Il codice non è contenuto in un modulo di Visual Basic, ma "dietro" a un foglio di lavoro o alla cartella stessa.
Soluzione alternativa
Affinché le subroutine in esecuzione automatica funzionino correttamente in Microsoft Excel, devono essere contenute in un modulo di Visual Basic. È necessario inserire un modulo di Visual Basic nella cartella di lavoro e quindi inserire il codice nel nuovo modulo. Per inserire un modulo di Visual Basic:
-
In Esplora progetti in Visual Basic Editor attivare la cartella di lavoro che contiene il codice in questione.
-
Scegliere modulodal menu Inserisci .
Dopo l'inserimento del nuovo modulo, tagliare il codice dalla posizione originale e incollarlo nel modulo di Visual Basic. Salvare quindi la cartella di lavoro.
Ulteriori informazioni
In Excel, il codice VBA può essere archiviato in tre posizioni diverse: in un modulo di Visual Basic, in un modulo di classe di Visual Basic e in fogli di lavoro "Behind". Per modificare il codice "dietro" a un foglio di lavoro o una cartella:
-
Attivare Visual Basic Editor (premere ALT + F11).
-
Nella finestra Esplora progetti verranno visualizzate voci simili alle seguenti:
VBAProject (Book1) Microsoft Excel Objects Sheet1 (Sheet1) Sheet2 (Sheet2) Sheet3 (Sheet3) ThisWorkbook Modules Module1
Se si fa doppio clic su uno dei nomi del foglio di lavoro o su ThisWorkbook, è possibile digitare il codice nella finestra del codice. Tale codice non contenuto in un modulo di Visual Basic viene considerato "dietro" il foglio di lavoro oThisWorkbook . Se una Auto_Open, Auto_Closeo un'altra subroutine in esecuzione automatica viene archiviata "dietro" a un foglio di lavoro o a un oggetto ThisWorkbook, potrebbe non funzionare correttamente quando si apre o si chiude la cartella o quando si esegue un'azione che deve causare l'esecuzione della subroutine.