送分100分:在一个过程中可否有多个ON ERROR GOTO语句
问题如下:
1、在一个过程中可否有多个ON ERROR GOTO语句。
2、如果可以的话,它们的作用范围如何划分。
[解决办法]
1.这个可以有.
2.从你写ON ERROR GOTO 开始. 最好弄清楚逻辑层次再用,否则容易出问题.
[解决办法]
只有最后一个生效:
On Error Resume NextOn Error GoTo err1err1:
[解决办法]
楼主测试一下就知道了。
Private Sub Command1_Click()On Error Resume NextDim s$(1)s(2) = "1"MsgBox "next"On Error GoTo err1s(2) = "1"err1:MsgBox "err1"End Sub
[解决办法]
Option Explicit
Dim a()
Private Sub Command1_Click()
On Error GoTo L1
Debug.Print 1 / 0
L1:
Debug.Print Err.Description
On Error GoTo L2
Debug.Print a(1)
L2:
Debug.Print Err.Description
End Sub
[解决办法]
1.可以有N个(N是自然数)
2.按照逻辑执行顺序,在出错语句之前最近的一个有效.
下面的代码会弹出 "e2"
(例子很BT,这样写代码会被其他人鄙视死,但是只是为了说明下问题)
Private Sub Command1_Click()Dim i As Integer, j As Integeri = 0On Error GoTo e1GoTo e2LineA: j = 1 / i MsgBox ("Pass") On Error GoTo e2GoTo LineAe1: MsgBox ("e1") Exit Sube2: MsgBox ("e2") Exit SubEnd Sub
[解决办法]