我需要編寫代碼到特定路徑並從中導入數據,然後 然後轉到另一個路徑並執行相同的操作。它可以做「如果錯誤去分」
我需要的是,如果路徑NUM 1不存在,它會跳直接向路徑NUM 2.
我寫了一分對每個路徑。有一種方法做這樣的事情:
if error goto sub ___ ?
在此先感謝
我需要編寫代碼到特定路徑並從中導入數據,然後 然後轉到另一個路徑並執行相同的操作。它可以做「如果錯誤去分」
我需要的是,如果路徑NUM 1不存在,它會跳直接向路徑NUM 2.
我寫了一分對每個路徑。有一種方法做這樣的事情:
if error goto sub ___ ?
在此先感謝
不是直接的,但你可以做這樣的事情
On Error Goto error_sub1
,並在你的函數的底部,寫
error_sub1:
'ToDo - put your calling code here.
在其他地方你可以將錯誤處理程序切換到不同的標籤:
On Error Goto error_sub2
等等。
試試這個:
Sub testSO()
On Error GoTo err
I=5/0
Exit Sub
err:
<your sub procedure here>
End Sub
請記住,包括退出小組,否則它將依然沒有錯誤,甚至跑!
首先避免錯誤並試圖打開它之前檢查文件是否存在不是更好嗎?
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