繁体   English   中英

运行时错误“1004”:对象“_Workbook”的方法“SaveAs”失败

[英]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语句有关的不正确语句中添加了删除线(请参见下面的注释)。 基本上,因为WithEnd 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM