对象'_Workbook'的方法'SaveAs'使VBA失败

时间:2017-10-18 15:20:02

标签: vba excel-vba excel

我有一个连接到数据库的工作簿,当您刷新工作簿时,它会刷新工作簿中的数据。然后运行宏以将新(原始)数据保存在两个不同的位置,然后宏将对该原始数据进行分析,并在稍后的其他4个位置保存相同的工作簿。 当我尝试第一次保存原始数据时,我能够保存到第一个位置,但当它移动到第二个位置时,我收到错误:运行时错误'1004':方法'SaveAs'对象'_Workbook'失败了。这两个地点都是有效的地点。

这是宏中用于执行第一个文件保存的一个子:

Sub saveraw()

Dim rdate As String
Dim rawfilename As String, rawfilename1 As String
Dim mywb As Workbook

Set mywb = ActiveWorkbook

rdate = Format(Now(), "mm-dd-yy")

rawfilename = "\\sw\mes\PS\SC\SCM_Supply_Execution\Spares\This Weeks Number Database\This Weeks Numbers(raw) " & rdate & ".xlsm"
rawfilename1 = "\\sw\mes\PS\SC\SCM_Shared\Spares Reports\This Weeks Numbers(raw) " & rdate & ".xlsm"

mywb.Save

Worksheets("Sheet2").Range("A2") = Null

Application.DisplayAlerts = False

mywb.SaveAs Filename:=rawfilename
mywb.SaveAs Filename:=rawfilename1

Application.DisplayAlerts = True

End Sub

我也尝试过使用

的方法
ActiveWorkbook.SaveAs

代替两个mywb.SaveAs,但这也不起作用。

2 个答案:

答案 0 :(得分:1)

作为测试,仅针对您有权访问的文件位置运行代码。我注意到第二个命令对共享驱动器的引用,所以可能有人已经在其中并且无法保存。

现在将显示警报设置为true。

此外,当您运行测试宏时,请确保您没有打开任何Windows资源管理器窗口并在此处反馈结果,如果再次调试,我将提供帮助。

从表面上看,代码对我来说很好。

答案 1 :(得分:0)

试试这个

ActiveWorkbook.SaveAs Filename:="\\sw\mes\PS\SC\SCM_Supply_Execution\Spares\This Weeks Number Database\This Weeks Numbers(raw) " & rdate & ".xlsm" _
        , FileFormat:=xlOpenXMLWorkbookMacroEnabled

如果该文件已存在,则可能会出现问题,因为弹出窗口会询问您是否要覆盖该文件

虽然我认为错误是由于特定位置或连接问题的特权问题所致