根据表达式的值,分支到多个指定的行之一。
语法
              在表达式上 GoSub目标列表 
              在表达式上 GoTo目标列表
On...GoSub 和 On...GoTo 语句语法包含以下部分:
| Part | 说明 | 
|---|---|
| expression | 必填。 任何计算结果为一个介于 之间的整数(含 0 和 255)的数值表达式。 如果 expression 为整数之外的任何数字,则在计算它之前将对它进行舍入。 | 
| destinationlist | 必填。 用逗号分隔的行号或行标签的列表。 | 
备注
expression 的值确定将哪一个行分支到 destinationlist。 如果 expression 的值小于 1 或大于列表中的项数,则将获得下列结果之一:
| 如果 expression 为 | Then | 
|---|---|
| 等于 0 | 控制权将转交给 On...GoSub 或 On...GoTo 后面的语句。 | 
| 大于列表中的项数 | 控制权将转交给 On...GoSub 或 On...GoTo 后面的语句。 | 
| Negative | 发生错误。 | 
| 大于 255 | 发生错误。 | 
可以在同一列表中混合行号和行标签。 在 On... 中使用任意数量的行标签和行号 。GoSub 和 On...转到。 但是,如果使用的标签或数字的数目大于单个行可容纳的数目,则必须使用行继续符在下一个物理行上继续逻辑行。
提示
Select Case 提供一个更结构化且更灵活的方式来执行多个分支。
示例
此示例使用 On...GoSub 和 On...GoTo 语句分别分支到子例程和行标签。
Sub OnGosubGotoDemo() 
Dim Number, MyString 
 Number = 2 ' Initialize variable. 
 ' Branch to Sub2. 
 On Number GoSub Sub1, Sub2 ' Execution resumes here after 
 ' On...GoSub. 
 On Number GoTo Line1, Line2 ' Branch to Line2. 
 ' Execution does not resume here after On...GoTo. 
 Exit Sub 
Sub1: 
 MyString = "In Sub1" : Return 
Sub2: 
 MyString = "In Sub2" : Return 
Line1: 
 MyString = "In Line1" 
Line2: 
 MyString = "In Line2" 
End Sub
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。