2017-07-10 29 views
-1

我需要編寫代碼到特定路徑並從中導入數據,然後 然後轉到另一個路徑並執行相同的操作。它可以做「如果錯誤去分」

我需要的是,如果路徑NUM 1不存在,它會跳直接向路徑NUM 2.

我寫了一分對每個路徑。有一種方法做這樣的事情:

if error goto sub ___ ? 

在此先感謝

回答

1

不是直接的,但你可以做這樣的事情

On Error Goto error_sub1 

,並在你的函數的底部,寫

error_sub1: 
'ToDo - put your calling code here. 

在其他地方你可以將錯誤處理程序切換到不同的標籤:

On Error Goto error_sub2 

等等。

1

試試這個:

Sub testSO() 

On Error GoTo err 
I=5/0 

Exit Sub 
err: 
<your sub procedure here> 

End Sub 

請記住,包括退出小組,否則它將依然沒有錯誤,甚至跑!

0

首先避免錯誤並試圖打開它之前檢查文件是否存在不是更好嗎?

Sub Test() 

    Dim sFile1 As String 
    Dim sFile2 As String 
    Dim wrkBk As Workbook 

    On Error GoTo Error_Handler 

    sFile1 = "C:\Users\Desktop\MyFile1.xls" 
    sFile2 = "C:\Users\Desktop\MyFile2.xls" 

    If FileExists(sFile1) Then 
     Set wrkBk = Workbooks.Open(sFile1) 
    ElseIf FileExists(sFile2) Then 
     Set wrkBk = Workbooks.Open(sFile2) 
    Else 
     Err.Raise 513, , "File Not Found." 
    End If 

    wrkBk.Worksheets(1).Range("A1") = "Opened this file." 

    On Error GoTo 0 

Fast_Exit: 
'Any tidying up that needs doing. 

Exit Sub 

Error_Handler: 
    MsgBox Err.Description, vbExclamation + vbOKCancel, _ 
     "Error: " & CStr(Err.Number) 
    Err.Clear 
    Resume Fast_Exit 

End Sub 

Public Function FileExists(ByVal FileName As String) As Boolean 
    Dim oFSO As Object 
    Set oFSO = CreateObject("Scripting.FileSystemObject") 
    FileExists = oFSO.FileExists(FileName) 
End Function 
相關問題