特定のパスに移動し、そこからデータをインポートするコードを記述する必要があります。 は別のパスに移動して同じ処理を行います。「エラーがサブになった場合」
私はパスnumの1が存在しない場合、それは私が各パスのサブを書いたパスNUMに2
を直接ジャンプすることが必要です。そこのような何かをする方法です:事前に直接
特定のパスに移動し、そこからデータをインポートするコードを記述する必要があります。 は別のパスに移動して同じ処理を行います。「エラーがサブになった場合」
私はパス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