Sintomi
In Microsoft Office Excel, il codice macro di Microsoft Visual Basic, Application (VBA) contenuto "dietro" un foglio di lavoro o una cartella di lavoro potrebbe non funzionare correttamente.
Causa
Ciò si verifica se si verificano entrambe le condizioni seguenti:
-
Il codice in questione è contenuto all'interno di una subroutine con esecuzione automatica, ad esempio una subroutine Auto_Open o Auto_Close.
-
Il codice non è contenuto in un modulo di Visual Basic, ma "dietro" un foglio di lavoro o la cartella di lavoro stessa.
Soluzione alternativa
Affinché le subroutine eseguite automaticamente 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 di Visual Basic Editor attivare la cartella di lavoro che contiene il codice in questione.
-
Scegliere Modulo dal menu Inserisci.
Dopo aver inserito il nuovo modulo, tagliare il codice dalla posizione originale e incollarlo nel modulo di Visual Basic. Quindi, salvare 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 Visual Basic e in fogli di lavoro e cartelle di lavoro "dietro".
Per modificare il codice "dietro" un foglio di lavoro o una cartella di lavoro:
-
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 dei fogli di lavoro o su ThisWorkbook, è possibile digitare codice nella finestra del codice. Tale codice non incluso in un modulo di Visual Basic è considerato "dietro" il foglio di lavoro o
Thisworkbook.
Se una Auto_Open, una Auto_Close o un'altra subroutine a esecuzione automatica è archiviata "dietro" un foglio di lavoro o ThisWorkbook, potrebbe non funzionare correttamente quando si apre o si chiude la cartella di lavoro oppure quando si esegue un'azione che dovrebbe causare l'esecuzione della subroutine.