7、End语句与分支语句

2019-02-23  本文已影响0人  lydark

1、End语句

退出所有的程序

2、Exit语句

退出正在执行的程序

2.1、Exit Sub

退出当前sub过程

2.2、Exit Function

退出当前Function

2.3、Exit For

退出for循环

2.4、Exit Do

退出do循环

3、分支语句

3.1、Goto

跳转到指定的地方

语法

Goto 100
100:

100:
Goto 100

3.2、GoSub..Return
跳转到指定的地方,然后再跳回来

语法

GoSub 100
[Exit Sub]
100:
Return

说明

GoSub..Return语句与Exit Sub结合使用,否则GoSub语句块执行完毕后,仍然会再次执行100:语句块,最后程序抛出异常“无GoSub返回”。

错误示例:

Sub test()
Dim i!
For i = 5 To 8
If Cells(i, "o").Value = 2 Then GoSub 100
Next
100:
Cells(i, "q").Value = "OK"
Return
End Sub


[o5:o8]=1,2,3,4
预期结果:[q6]="OK"
实际结果:[q6]="OK",[q9]="OK"且程序报错

正确示例:

Sub test()
Dim i!
For i = 5 To 8
If Cells(i, "o").Value = 2 Then GoSub 100
Next
Exit Sub
100:
Cells(i, "q").Value = "OK"
Return
End Sub

3.3、On Error Resume Next

遇到错误,跳过执行下一句

语法

Sub 程序名()
On Error Resume Next
End Sub

3.4、On Error Goto

遇到错误,跳转到指定的行数

语法

Sub 程序名()
On Error Goto 100
100:
End Sub

3.5、On Error Goto 0

取消错误跳转

语法

Sub 程序名()
On Error Resume Next
On Error Goto 0
End Sub

例:

Sub t5()
On Error Resume Next
Dim x As Integer
For x = 1 To 10
If x > 5 Then On Error Goto 0
Cells(x,3) = Cells(x,2) * Cells(x,1)
Next x
Exit Sub
End Sub

上一篇下一篇

猜你喜欢

热点阅读