我需要编写转到特定路径的代码并从中导入数据, 然后转到另一条道路并做同样的事情。
我需要如果路径num 1不存在,它将直接跳转到路径num 2。
我为每条路径写了一个子。有办法做一些事情:
if error goto sub ___ ?
提前致谢
答案 0 :(得分:1)
不直接,但您可以执行类似
的操作On Error Goto error_sub1
并在函数的底部写上
error_sub1:
'ToDo - put your calling code here.
在您运行的其他地方,您可以将错误处理程序切换到另一个标签:
On Error Goto error_sub2
等等。
答案 1 :(得分:1)
试试这个:
Sub testSO()
On Error GoTo err
I=5/0
Exit Sub
err:
<your sub procedure here>
End Sub
请记住包含Exit Sub,否则即使没有错误它仍会运行!
答案 2 :(得分: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