2017-02-17 33 views
1

我想將excel文件保存到網絡驅動器與代碼波紋管。 問題是,如果網絡不可訪問,它會產生運行時錯誤。VBA - 另存爲 - 運行時錯誤,如果網絡不可訪問

你能幫如何修改代碼 - 保存給定的網絡驅動器上的文件,如果網絡accessable - 如果不是,保存到本地機器(創建doucuments文件夾的副本)

感謝

Dim datum_ As String 
Dim path_ As String 
datum_ = Format(Now, "yyyy-mm-dd hh-mm") 
path_ = "\\networkfolder" 

'Application.DisplayAlerts = False 
ActiveWorkbook.SaveAs Filename:=path_ & datum_ & ".xlsm" 
'Application.DisplayAlerts = True 

回答

2
'.... code 
Application.DisplayAlerts = False 
On Error Resume Next 
ActiveWorkbook.SaveAs Filename:=path_ & datum_ & ".xlsm" 
If Err.Number <> 0 Then ActiveWorkbook.SaveAs Filename:=myLocalPath_ & datum_ & ".xlsm" 
Application.DisplayAlerts = True 
On Error Goto 0 
' .... code 
+0

應該加入「End if」,但是可行! 謝謝! – Gexxx

1

您可以使用錯誤處理,所以如果出現錯誤,將路徑更改爲本地。

Dim datum_ As String 
Dim path_ As String 
datum_ = Format(Now, "yyyy-mm-dd hh-mm") 
path_ = "\\networkfolder" 

On Error GoTo localPath 
'Application.DisplayAlerts = False 
ActiveWorkbook.SaveAs Filename:=path_ & datum_ & ".xlsm" 
'Application.DisplayAlerts = True 

'rest of code here 
Exit Sub 

localPath: 
path_ = "insert local path here" 
ActiveWorkbook.SaveAs Filename:=path_ & datum_ & ".xlsm" 
+0

的'ErrHandler'被稱爲在所有情況下。爲什麼不檢查'如果Err.Number <> 0 Then ...' –

+0

沒想到,可以在保存行之後放置不同的錯誤處理程序來處理所有其他錯誤。 –

+0

我的意思是即使沒有錯誤發生,你仍然保存在本地。 –