上。。。Gosub,On...GoTo 语句

根据表达式的值,分支到多个指定的行之一。

语法

表达式上 GoSub目标列表
表达式上 GoTo目标列表

On...GoSubOn...GoTo 语句语法包含以下部分:

Part 说明
expression 必填。 任何计算结果为一个介于 之间的整数(含 0 和 255)的数值表达式。 如果 expression 为整数之外的任何数字,则在计算它之前将对它进行舍入。
destinationlist 必填。 用逗号分隔的行号行标签的列表。

备注

expression 的值确定将哪一个行分支到 destinationlist。 如果 expression 的值小于 1 或大于列表中的项数,则将获得下列结果之一:

如果 expression Then
等于 0 控制权将转交给 On...GoSubOn...GoTo 后面的语句
大于列表中的项数 控制权将转交给 On...GoSubOn...GoTo 后面的语句。
Negative 发生错误。
大于 255 发生错误。

可以在同一列表中混合行号和行标签。 在 On... 中使用任意数量的行标签和行号 。GoSubOn...转到。 但是,如果使用的标签或数字的数目大于单个行可容纳的数目,则必须使用行继续符在下一个物理行上继续逻辑行。

提示

Select Case 提供一个更结构化且更灵活的方式来执行多个分支。

示例

此示例使用 On...GoSubOn...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 支持和反馈,获取有关如何接收支持和提供反馈的指南。