Sintomas
No Microsoft Office Excel, o código de macro do Microsoft Visual Basic for Application (VBA) que está contido "atrás" de uma planilha ou pasta de trabalho pode não funcionar corretamente.
Causa
Isso ocorrerá se ambas as condições a seguir forem verdadeiras:
-
O código em questão está contido dentro de uma sub-rotina em execução automática, como uma sub-rotina Auto_Open ou Auto_Close.
-
O código não está contido em um módulo do Visual Basic, mas "atrás" de uma planilha ou da própria pasta de trabalho.
Solução alternativa
Para que as sub-rotinas de execução automática funcionem corretamente no Microsoft Excel, elas devem estar contidas em um módulo do Visual Basic.
Você deve inserir um módulo do Visual Basic na pasta de trabalho e, em seguida, colocar o código no novo módulo. Para inserir um módulo do Visual Basic:-
No Project Explorer no Editor do Visual Basic, ative a pasta de trabalho que contém o código em questão.
-
No menu Inserir, clique em Módulo.
Depois que o novo módulo for inserido, corte o código de seu local original e cole-o no módulo Visual Basic. Em seguida, salve a pasta de trabalho.
Informações adicionais
No Excel, o código VBA pode ser armazenado em três locais diferentes: em um módulo do Visual Basic, em um módulo de classe do Visual Basic e planilhas e pastas de trabalho "atrás".
Para editar o código "atrás" de uma planilha ou uma pasta de trabalho:-
Ative o Editor do Visual Basic (pressione ALT+F11).
-
Na janela Project Explorer, você verá entradas semelhantes às seguintes:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
Se você clicar duas vezes em um dos nomes de planilha ou ThisWorkbook, poderá digitar código na janela de código. Esse código não contido em um módulo do Visual Basic é considerado "atrás" da planilha ou
Thisworkbook. Se um Auto_Open, Auto_Close ou outra sub-rotina em execução automática for armazenado "atrás" de uma planilha ou ThisWorkbook, ele pode não funcionar corretamente quando você abre ou fecha sua pasta de trabalho ou quando você executa uma ação que deve fazer com que a sub-rotina seja executada.