Síntomas
En Microsoft Office Excel, es posible que el código de macro de Microsoft Visual Basic para Aplicaciones (VBA) que contiene "detrás" una hoja de cálculo o un libro no funcione correctamente.
Causa
Esto se producirá si se cumplen las dos condiciones siguientes:
-
El código en cuestión se encuentra dentro de una subrutina de ejecución automática, como una Auto_Open o Auto_Close subrutina.
-
El código no está contenido en un módulo de Visual Basic, sino "detrás" de una hoja de cálculo o del propio libro.
Solución alternativa
Para que las subrutinas de ejecución automática funcionen correctamente en Microsoft Excel, deben estar contenidas en un módulo de Visual Basic.
Debe insertar un módulo de Visual Basic en el libro y, a continuación, colocar el código en el nuevo módulo.
Para insertar un módulo de Visual Basic:
-
En el Explorador de proyectos del Editor de Visual Basic, active el libro que contiene el código en cuestión.
-
En el menú Insertar, haga clic en Módulo.
Después de insertar el nuevo módulo, corte el código de su ubicación original y péguelo en el módulo de Visual Basic. A continuación, guarde el libro.
Más información
En Excel, el código de VBA se puede almacenar en tres ubicaciones diferentes: en un módulo de Visual Basic, en un módulo de clase de Visual Basic y "detrás" de hojas de cálculo y libros.
Para editar código "detrás" de una hoja de cálculo o un libro:
-
Activar el Editor de Visual Basic (presione ALT+F11).
-
En la ventana explorador de proyectos, verá entradas similares a las siguientes:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
Si hace doble clic en uno de los nombres de las hojas de cálculo o en ThisWorkbook, puede escribir código en la ventana de código. Este código no está incluido en un módulo de Visual Basic se considera "detrás" de la hoja de cálculo o
Thisworkbook.
Si una Auto_Open, Auto_Close u otra subrutina que se ejecuta automáticamente se almacena "detrás" de una hoja de cálculo o ThisWorkbook, es posible que no funcione correctamente al abrir o cerrar el libro, o al realizar una acción que debería hacer que se ejecute la subrutina.