Síntomas

Al ejecutar una macro Visual Basic para Aplicaciones en Microsoft Excel, es posible que reciba el siguiente mensaje de error o similar:

Error de tiempo de ejecución '1004':Error del método 'SaveAs' del objeto '_Worksheet'

Causa

Este comportamiento puede ocurrir cuando se cumplen las dos condiciones siguientes:

  • Está usando una macro Visual Basic para Aplicaciones para guardar una hoja de cálculo.-y-

  • Especifique el formato de archivo como la constante xlWorkbookNormal.

Por ejemplo, el código siguiente hace que se produzca este error:

Sub A()   Dim myNewSheet As Worksheet   Set myNewSheet = ActiveSheet   FileNameBin = "c:\ABC"   myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormalEnd Sub

Solución alternativa 

Microsoft proporciona ejemplos de programación solo para ilustración, sin garantía expresa o implícita, incluidas, entre otras, las garantías implícitas de comerciabilidad y/o idoneidad para un fin determinado. En este artículo se supone que está familiarizado con el lenguaje de programación que se está demostrando y las herramientas usadas para crear y depurar procedimientos. Los profesionales de soporte técnico de Microsoft pueden ayudar a explicar la funcionalidad de un procedimiento determinado, pero no modificarán estos ejemplos para proporcionar funcionalidad adicional o crear procedimientos para satisfacer sus necesidades específicas. Si tiene una experiencia de programación limitada, es posible que desee ponerse en contacto con un partner certificado de Microsoft o con los Servicios de asesoramiento de Microsoft. Para obtener más información, visite estos sitios web de Microsoft:Microsoft Certified Partners - https://partner.microsoft.com/global/30000104 Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice Para obtener más información sobre las opciones de soporte técnico disponibles y sobre cómo ponerse en contacto con Microsoft, visite el siguiente sitio web de Microsoft:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS Para evitar este comportamiento, cambie la especificación de formato de archivo de la constante xlWorkbookNormal a 1. El código de ejemplo funciona normalmente si se cambia a:

Sub A()   Dim myNewSheet As Worksheet   Set myNewSheet = ActiveSheet   FileNameBin = "c:\ABC"   myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1End Sub

NOTA Aunque guarde una hoja de cálculo, todas las hojas de cálculo del libro seleccionado se guardan cuando el formato de archivo se establece en xlWorkbookNormal o 1.

Estado

Microsoft ha confirmado que este es un problema en los productos Microsoft que aparecen enumerados al principio de este artículo.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.