El código VBA "detrás" de una hoja de cálculo o de un libro puede no funcionar en Excel


Para obtener una versión de Microsoft Excel 97 de este artículo, consulte 157346 .Para obtener una versión de Microsoft Excel 98 de este artículo, consulte 182482 .

Síntomas


En Microsoft Office Excel, el código de macro de Microsoft Visual Basic para aplicaciones (VBA) contenido "detrás" de una hoja de cálculo o de un libro puede no funcionar correctamente.

Causa


Esto ocurrirá 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, pero "detrás" de una hoja de cálculo o del libro en sí.

Solución alternativa


Para que las subrutinas que se ejecutan automáticamente funcionen correctamente en Microsoft Excel, deben estar incluidas 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:
  1. En el Explorador de proyectos del editor de Visual Basic, active el libro que contiene el código en cuestión.
  2. En el menú Insertar, haga clic en Módulo.
Una vez que se haya insertado el nuevo módulo, corte el código de su ubicación original y péguelo en el módulo Visual Basic. Después, guarde el libro.

Más información


En Excel, el código VBA se puede almacenar en tres ubicaciones distintas: 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 el código "detrás" de una hoja de cálculo o un libro:
  1. Activar el editor de Visual Basic (presione ALT + F11).
  2. 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 hoja de cálculo o ThisWorkbook, puede escribir código en la ventana código. Este código no incluido en un módulo de Visual Basic se considera "detrás" de la hoja de cálculo oThisWorkbook . Si un Auto_Open, Auto_Closeu 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 debe hacer que se ejecute la subrutina.