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:=xlWorkbookNormal
End 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:=1
End 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.