症状

在 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:=xlWorkbookNormalEnd 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:=1End Sub

注意 即使正在保存工作表,当文件格式设置为 xlWorkbookNormal 或 1 时,所选工作簿中所有工作表也将被保存。

状态

Microsoft 已确认这是本文开头列出的 Microsoft 产品中的问题。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。