2017-10-18 1106 views
0

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

下面是宏的一个子,它的第一个文件保存:

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的也试过,但那也没用。

+0

如果尝试使用该文件名手动保存到该位置,会发生什么情况? –

+1

是的,问题是特权。如果我进行了更改并尝试保存,它将无法工作。我忽略了这一点。 谢谢 – Adije

回答

0

试试这个

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

如果该文件已经存在,因为这样一个弹出窗口将询问您是否要覆盖与否

虽然我认为错误是由于这可能有问题在特定位置或连接问题中存在特权问题

+0

这个问题是特权...我被给予只读访问权限,我没有想到没有写,直到你说,我刚刚写和它的作品。 谢谢 – Adije

1

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

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

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

表面上,代码看起来不错。

+0

是的,问题是特权..我忽略了这一点,花了一个小时思考我的代码是坏的,当唯一的问题是没有写访问-_- 感谢您的帮助 – Adije