Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Al guardar un libro en Excel mediante programación, un comando de menú no se ejecuta en el evento BeforeSave

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 898511
Síntomas
Mediante programación, se guarda un libro en Microsoft Excel. Si se intenta realizar un comando de menú en un evento, como por ejemplo, el evento BeforeSave, no se ejecuta el comando de menú.
Causa
Este problema se produce porque no puede anidarse un comando de menú en el código cuando se llama mediante programación a un comando de menú como el comando Guardar . El comando de menú en el evento BeforeSave específicamente se impide la ejecución.
Solución
Para evitar este problema, guarde manualmente el libro. Para guardar manualmente el libro, utilice uno de los procedimientos siguientes, según la versión de Excel que esté ejecutando:
  • En Microsoft Office Excel 2007, haga clic en el Botón de Microsoft Office y, a continuación, haga clic en Guardar .
  • En Microsoft Office 2003 y en versiones anteriores de Excel, haga clic en Guardar en el menú archivo .
Cuando se utiliza esta solución, puede realizar cualquiera de los siguientes comandos de menú en el evento BeforeSave:
  • Cualquier comando del menú formato .
  • El comando Borrar en el menú Edición .
  • El comando Eliminar en el menú Edición .
  • El comando Eliminar filas en el menú Edición .
  • El comando Imprimir del menú archivo .
Más información
Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos.

Para reproducir este problema, siga estos pasos, según la versión de Excel que esté ejecutando.

Excel 2007

  1. Abra un nuevo libro en Excel.
  2. Haga clic en el Botón de Microsoft Office , haga clic en Guardar como , haga clic en Libro de macros (*.xlsm) en el cuadro Guardar como tipo , escriba un nombre de archivo en el cuadro nombre de archivo y, a continuación, haga clic en Guardar .
  3. Escriba algún texto en la celda A1 y, a continuación, presione ENTRAR.
  4. Haga clic en la ficha Programador . Si no se muestra la ficha Programador , siga estos pasos:
    1. Haga clic en el Botón de Microsoft Office y, a continuación, haga clic en Opciones de Excel .
    2. Haga clic en popular .
    3. En la casilla de verificación Mostrar ficha Programador en la cinta de opciones .
    4. Haga clic en Aceptar para cerrar el cuadro de diálogo Opciones de Excel .
  5. Haga clic en Visual Basic en el grupo de código para iniciar el Editor de Visual Basic.
  6. En el panel proyecto - VBAProject , haga doble clic en ThisWorkbook .
  7. Siga estos pasos:
    1. En el cuadro objeto , haga clic en libro .
    2. En el cuadro procedimiento , haga clic en BeforeSave .
    3. Agregue el código de macro siguiente al evento BeforeSave:
         Range("a1").ClearContents
    4. En el código de macro que escribió en el paso 7 c, escriba el siguiente código de macro:
      Public Sub Test()   ThisWorkbook.SaveEnd Sub
  8. En el libro, haga clic en el Botón de Microsoft Office y, a continuación, haga clic en Guardar .

    El texto en la celda A1 se borra.
  9. Haga clic en Cancelar para cerrar el cuadro de diálogo Guardar como .
  10. Escriba algún texto en la celda A1 y, a continuación, presione ENTRAR.
  11. En la ficha Programador , haga clic en macros en el grupo de código .
  12. Haga clic en la macro ThisWorkbook.Test y, a continuación, haga clic en Ejecutar .

    El texto en la celda A1 no se borra cuando se guarda el libro.

Excel 2003 y versiones anteriores de Excel

  1. Abra un nuevo libro en Excel.
  2. Escriba algún texto en la celda A1 y, a continuación, presione ENTRAR.
  3. En el menú Herramientas , elija macro y, a continuación, haga clic en Editor de Visual Basic .
  4. En el panel proyecto - VBAProject , haga doble clic en ThisWorkbook .
  5. Siga estos pasos:
    1. En el cuadro objeto , haga clic en libro .
    2. En el cuadro procedimiento , haga clic en BeforeSave .
    3. Agregue el código de macro siguiente al evento BeforeSave:
         Range("a1").ClearContents
    4. En el código de macro que escribió en el paso 5 c, escriba el siguiente código de macro:
      Public Sub Test()   ThisWorkbook.SaveEnd Sub
  6. En el libro, haga clic en Guardar en el menú archivo .

    El texto en la celda A1 se borra.
  7. Haga clic en Cancelar para cerrar el cuadro de diálogo Guardar como .
  8. Escriba algún texto en la celda A1 y, a continuación, presione ENTRAR.
  9. En el menú Herramientas , elija macro y, a continuación, haga clic en macros .
  10. Haga clic en la macro ThisWorkbook.Test y, a continuación, haga clic en Ejecutar .

    El texto en la celda A1 no se borra cuando se guarda el libro.
Excel2007 excel2k7 excel12 xl2007 xl2k7 xl12 excel2003 excel2000 excel2000 xl2003 xl2002 xl2000 xl2k3 xl2k2 xl2k

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 898511 - Última revisión: 01/20/2007 01:25:04 - Revisión: 4.2

Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition

  • kbmt kbexpertiseinter kbmacro kbvba kbprogramming kbautomation kbtshoot kbprb KB898511 KbMtes
Comentarios
/html>