Excel 2007 VBA ActiveWorkbook SaveAs 未保存...运行时错误 1004

Posted

技术标签:

【中文标题】Excel 2007 VBA ActiveWorkbook SaveAs 未保存...运行时错误 1004【英文标题】:Excel 2007 VBA ActiveWorkbook SaveAs not saving ... Run-time error 1004 【发布时间】:2015-04-03 18:32:30 【问题描述】:

我让 Excel 记录了选择“另存为”并应用特定位置和文件名的步骤,它会生成以下 VBA 代码:

 ActiveWorkbook.SaveAs Filename:= _
    "H:\Documents\Data\Tasks\Transfer.xlsx" _
    , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

也尝试将 FileFormat 设置为

FileFormat:=51

我还包括了以下处理程序,但不管有没有它们都不起作用:

On Error Resume Next
Application.DisplayAlerts = False

原始文件为 .xls 格式。

当我运行允许显示警报的宏时,它会产生以下错误:

Run-time error '1004':
Method 'SaveAs' of object '_Workbook' failed

在我相信使用 Windows 8 和新的网络服务器工作之前,这一直有效。这样的事情会影响 SaveAs 吗?

我错过了什么?感谢您提供的任何提示。

【问题讨论】:

如果将映射驱动器 (H) 更改为 UNC,例如 \\Server\Documents ... 是否有效? 是的,我可以手动将这些 .xls 文件另存为 .xlsx。关于UNC的好点。有时宏记录器也会根据位置产生这种情况,所以我尝试了两种方式。 【参考方案1】:

试试这个

Application.ActiveWorkbook.SaveAs Filename:="H:\Documents\Data\Tasks\Transfer.xlsx", fileformat:=51

【讨论】:

以上是关于Excel 2007 VBA ActiveWorkbook SaveAs 未保存...运行时错误 1004的主要内容,如果未能解决你的问题,请参考以下文章

从 Access 2007 VBA 代码创建 .xlsx 文件时强制用户使用 Excel 版本

VBA excel英语2007导致excel 2016法语错误消息

字符串中的正确函数(Excel 2007 VBA)

Excel 2007 VBA - 数据透视表字段列表???产生错误

Excel 2007 VBA ActiveWorkbook SaveAs 未保存...运行时错误 1004

在 VBA Excel 2007 中使用命名范围