Excel VBA学习笔记-3

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.

你可能感兴趣的:(Excel)