Visual Basic 语言参考的关键字分类篇
一.控制流关键字总结
1.分支
i.GoSub...Return 语句
在一个过程中跳到另一个子程序中执行,执行后再返回。
可以在过程中的任何地方使用 GoSub 和 Return,但是 GoSub 和与之相应的 Return 语句必须放在同一个过程中。一个子程序中可以包含一个以上的 Return 语句,但是当碰到第一个 Return 语句时,程序就会返回到紧接在刚刚执行的 GoSub 语句之后的语句继续执行。
注意 不能使用 GoSub...Return 来进入或退出 Sub 过程。
提示 创建分开的过程,并使用 GoSub...Return 来调用,可以使程序更具结构化。
Sub GosubDemo()
Dim Num
' 请求用户输入一个数字。
Num = InputBox("Enter a positive number to be divided by 2.")
' 如果用户输入一个正整型,则使用子程序。
If Num > 0 Then GoSub MyRoutine
Debug.Print Num
Exit Sub ' 使用 Exit 命令来避免错误发生。
MyRoutine:
Num = Num/2 ' 将数除以 2。
Return ' 将控制返回 GoSub 之后的语句。
End Sub
ii.On Error 语句
a.On Error GoTo line
类似于java的try{...}catch(Exception e){...}如果要对错误信息进行捕获处理,最好使用它
Sub test()
Dim a As Integer
Dim b As Integer
a = 3
b = 0
On Error GoTo errorline
Debug.Print a / b
errorline:
Select Case Err.Number
Case 11
Debug.Print "除数不能为零"
Case Else
Debug.Print "其他错误"
End Select
End Sub
b.On Error Resume Next
错误发生时,仍然继续执行下面的语句
Sub test()
Dim a As Integer
Dim b As Integer
a = 3
b = 0
On Error Resume Next
Debug.Print a / b
Select Case Err.Number
Case 11
Debug.Print "除数不能为零"
b = 1
Case Else
Debug.Print "其他错误"
End Select
End Sub
c.On Error GoTo 0
关闭错误处理程序,类似java的throw,抛出异常
Sub test()
Dim a As Integer
Dim b As Integer
a = 3
b = 0
On Error Resume Next
Debug.Print a / b
On Error GoTo 0
Select Case Err.Number
Case 11
Debug.Print "除数不能为零"
b = 1
Case Else
Debug.Print "其他错误"
End Select
End Sub
iii.On...GoSub与On...GoTo
Sub OnGosubGotoDemo()
Dim Number, MyString
Number = 2 ' 设置变量初值。
' Branch to Sub2.
On Number GoSub Sub1, Sub2 ' 在 On...GoSub 退出後,程序会回到此处来继续完成。
On Number GoTo Line1, Line2 ' 完成 Line2 标记之区段。
' 在 On...GoTo 退出之后,程序不会回到此处来。
Exit Sub
Sub1:
MyString = "In Sub1": Return
Sub2:
MyString = "In Sub2": Return
Line1:
MyString = "In Line1"
Line2:
MyString = "In Line2"
End Sub
iv.