Sub test3()
line1:
Err.Clear
i1 = InputBox("输入一个数字")
On Error GoTo line1:
If i1 + 1 Then
Debug.Print "OK"
End If
End Sub
原因
原因是已经暂停了代码,需要处理异常了
如果想基础处理,拿需要加上 on error goto -1
解决方案举例
举例说明,如果要多次处理不同的错误,或者分段处理报错
on error goto XX 单独使用一般只能处理一次报错,写多个也没用
on error goto XX 配合 on error goto -1 可以处理这种情况
on error resume next 屏蔽报错,然后用if 处理也可以(但是要有if 确实遍历了所有出错的可能性)
例子1
Sub t2()
On Error GoTo line1
a = 1 / 0
Debug.Print "11"
line1:
Debug.Print "12"
On Error GoTo line2
b = 1 / 0
Debug.Print "21"
line2:
Debug.Print "22"
On Error GoTo line3
c = 1 / 0
Debug.Print "31"
line3:
Debug.Print "32"
End Sub
例子2
Sub t4()
On Error GoTo line1
a = 1 / 0
Debug.Print "11"
line1:
On Error GoTo -1
Debug.Print "12"
On Error GoTo line2
b = 1 / 0
Debug.Print "21"
line2:
On Error GoTo -1
Debug.Print "22"
On Error GoTo line3
c = 1 / 0
Debug.Print "31"
line3:
On Error GoTo -1
Debug.Print "32"
End Sub