![](/img/trans.png)
[英]Run-time error '1004': SaveAs Method of object '_Workbook failed
[英]Run-time error '1004': Method 'SaveAs' of object'_Workbook' failed
用户有一个 Excel 电子表格。 为了保存它,他们按下一个运行以下 VBA 代码的按钮。
该代码尝试将 Excel 电子表格保存到网络位置,用今天的日期修改文件名。
代码将间歇性地失败
“运行时错误'1004':对象'_Workbook'的方法'SaveAs'失败”。
脚本是:
Public Sub Copy_Save_R2()
Dim wbNew As Workbook
Dim fDate As Date
fDate = Worksheets("Update").Range("D3").Value
Set wbNew = ActiveWorkbook
With wbNew
ActiveWorkbook.SaveAs Filename:="Q:\R2 Portfolio Prints\#Archive - R2 Portfolio\" & "R2 Portfolio - CEC A " & Format(fDate, "mm-dd-yyyy")
End With
Sheets("Update").Activate
End Sub
正如Hugo所说,映射驱动器可能是一个问题。 我更喜欢使用完整的UNC路径(\\\\ Thismachine \\ ...),以防工作簿在未设置映射驱动器的计算机上使用。
我以为缺少扩展名可能是问题所在,但我只是在Excel 2013中对其进行了测试,然后它自动将.xlsx添加到文件名中。
该问题可能是由于
wbNew
参考引起的。
这是完全不必要的,不应与
。 基本上,您应该具有对工作簿的引用,或使用预定义的ActiveWorkbook
结合使用
ActiveWorkbook
引用。 我还建议改用ThisWorkbook
,因为用户可能在代码运行时单击另一本书。
Public Sub Copy_Save_R2()
Dim wbNew As Workbook
Dim fDate As Date
fDate = Worksheets("Update").Range("D3").Value
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:="Q:\R2 Portfolio Prints\#Archive - R2 Portfolio\R2 Portfolio - CEC A " & Format(fDate, "mm-dd-yyyy") & ".xlsx"
Application.DisplayAlerts = True
ThisWorkbook.Sheets("Update").Activate
End Sub
编辑:添加了Application.DisplayAlerts
命令以防止出现任何“保存”弹出窗口,例如使用.xlsx而不是.xlsm并覆盖现有副本。
编辑2018-08-11:添加了转义反斜杠以修复UNC路径显示。 向与With
语句有关的不正确语句中添加了删除线(请参见下面的注释)。 基本上,因为With
和End With
之间没有任何内容End With
开头.
,该语句根本不执行任何操作。
这对我有用。 确保您的工作簿没有共享。 我猜“共享”工作簿有局限性。
在这里看到了这个: https : //www.ozgrid.com/forum/forum/help-forums/excel-general/27843-save-xls-as-txt
在“审阅”选项卡中,单击“共享工作簿”,并确保未选中 “允许多个用户同时进行更改。这允许工作簿合并”。
我也在寻找导致此错误的原因,然后记得我正在使用已恢复的电子表格版本。 一旦我手动保存了恢复的文件并重新打开它,保存工作簿的vba代码就没有问题了。
对我来说也是一样,我在保存之前添加了一个命令,
像这样的波纹管,他们...工作了(我也使用application.display = false)
On Error Resume Next Kill TargetFullname On Error GoTo 0 wb.SaveCopyAs TargetFullname
将具有动态文件名的工作簿保存到网络位置时出现相同的错误消息。 保存阶段突然停止工作。 错误 1004 工作簿另存为方法失败。
一段时间后意识到宏保存 output 的位置已更改,并且团队已调整宏的脚本以反映新的网络地址。
虽然新的网络地址是准确的,但它太长了......我缩短了文件夹名称,以及文件名和宾果游戏......正在再次保存工作簿,没有错误消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.