2017-10-18 1087 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