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.