症状
在 Visual Basic for Applications 中Microsoft Excel宏时,可能会收到以下或类似错误消息:
对象"保存"的运行时错误"1004":
方法"SaveAs"_Worksheet失败
原因
当以下两个条件都成立时,可能会发生此行为:
-
您使用的是 Visual Basic for Applications 宏来保存工作表。
-and- -
将文件格式指定为常量 xlWorkbookNormal。
例如,以下代码会导致出现此错误:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormal
End Sub
解决方法
Microsoft 仅提供编程示例用于演示,而不提供明示或默示的担保,包括但不限于出于特定目的的可商家性和/或适用性的默示担保。 本文假定你熟悉演示的编程语言以及用于创建和调试过程的工具。 Microsoft 支持专业人员可以帮助解释特定过程的功能,但他们不会修改这些示例以提供附加功能或构造过程以满足您的特定需求。
如果编程经验有限,可能需要联系 Microsoft 认证合作伙伴或 Microsoft 咨询服务。 有关详细信息,请访问以下 Microsoft
网站:Microsoft 认证合作伙伴 - https://partner.microsoft.com/global/30000104
Microsoft 咨询服务 - http://support.microsoft.com/gp/advisoryservice
有关可用的支持选项以及如何联系 Microsoft 的详细信息,请访问以下 Microsoft 网站
:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS若要处理此行为,将文件格式规范从常量 xlWorkbookNormal 更改为 1。 如果更改为以下值,示例代码将正常运行:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1
End Sub
注意 即使正在保存工作表,当文件格式设置为 xlWorkbookNormal 或 1 时,所选工作簿中所有工作表也将被保存。
状态
Microsoft 已确认这是本文开头列出的 Microsoft 产品中的问题。