上。。。Gosub,On...GoTo 语句
根据表达式的值,分支到多个指定的行之一。
语法
在表达式上 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。