Sintomas
No Microsoft Office Excel, o código de macro do Microsoft Visual Basic for Application (VBA) que está contido "atrás" de uma folha de cálculo ou livro pode não funcionar corretamente.
Causa
Isto ocorrerá se ambas as seguintes condições forem verdadeiras:
-
O código em questão está contido numa subroutina em execução automática, como um Auto_Open ou Auto_Close subroutine.
-
O código não está contido num módulo do Visual Basic, mas sim numa folha de cálculo ou no próprio livro.
Solução
Para que as subroutinas em execução automática funcionem corretamente no Microsoft Excel, têm de estar contidas num módulo do Visual Basic.
Tem de inserir um módulo do Visual Basic no livro e, em seguida, colocar o código no novo módulo.
Para inserir um módulo do Visual Basic:
-
No Project Explorer no Visual Basic Editor, ative o livro que contém o código em questão.
-
No menu Inserir, clique em Módulo.
Após a inserção do novo módulo, corte o código da localização original e cole-o no módulo Do Visual Basic. Em seguida, guarde o livro.
Mais Informações
No Excel, o código VBA pode ser armazenado em três localizações diferentes: num módulo do Visual Basic, num módulo de classe do Visual Basic e em folhas de cálculo e livros "atrás".
Para editar o código "atrás" de uma folha de cálculo ou de um livro:
-
Ative o Visual Basic Editor (prima ALT+F11).
-
Na janela Project Explorer (Explorador de Projetos), verá entradas semelhantes às seguintes:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
Se fizer duplo clique num dos nomes da folha de cálculo ou em Este Livro, pode escrever código na janela de código. Esse código não contido num módulo do Visual Basic é considerado como estando "atrás" da folha de cálculo ou
Este Livro .
Se um Auto_Open, Auto_Close ou outra subrreplicação de execução automática estiver armazenada "atrás" de uma folha de cálculo ou Deste Livro, poderá não funcionar corretamente quando abre ou fecha o livro ou quando executa uma ação que deve fazer com que a subrreplicação seja executada.