VBA基础语法:GoTo语句

GoTo 语句

无条件地转移到过程中指定的行。

语法

GoTo line

必要的 line 参数可以是任意的行标签或行号。

说明

GoTo 只能跳到它所在过程中的行。

注意 太多的 GoTo 语句,会使程序代码不容易阅读及调试。尽可能使用结构化控制语句(Do...LoopFor...NextIf...Then...ElseSelect Case)。

GoTo 语句示例

本示例使用 GoTo 语句在一个过程内的不同程序段间作流程控制,不同程序段用不同的“程序标签”来区隔。

Sub GotoStatementDemo()
Dim Number, MyString
    Number = 1     ' 设置变量初始值。
    ' 判断 Number 的值以决定要完成那一个程序区段(以“程序标签”来表式)。
    If Number = 1 Then GoTo Line1 Else GoTo Line2
    
Line1:
    MyString = "Number equals 1"
    GoTo LastLine    ' 完成最后一行。
Line2:
    ' 下列的语句根本不会被完成。
    MyString = "Number equals 2"
LastLine: 
    Debug.Print MyString    ' 将“"Number equals 1"”显示在“立即”窗口。
End Sub

On...GoSub、On...GoTo 语句

根据表达式的值,转到特定行执行。

语法

On expression GoSub destinationlist

On expression GoTo destinationlist

On...GoSub On...GoTo 语句的语法具有以下几个部分:

部分描述
expression必要参数。数值表达式,其运算结果应该是一个界于 0 到 255 之间的整数,包含 0 和 255。如果 expression 的计算结果不是一个整数,则它会先四舍五入为一个整数。
destinationlist必要参数。行号或行标签的列表,之间要以逗号隔开。

说明

expression 的值会决定转到 destinationlist 中的哪一行。如果 expression 的值小于 1 或大于列表的项目个数,则会产生下面的结果之一:

如果表达式的值
等于 0控制权会转移到 On...GoSubOn...GoTo 之后的语句。
大于串的项目个数控制权会转移到 On...GoSubOn...GoTo 之后的语句。
负数会发生错误。
大于 255会发生错误。

可以在同一个列表中混合使用行号和行标签。在 On...GoSub On...GoTo 中也可随意使用任意个行号和行标签。但是,如果使用了太多的行标签或行号,以至于在一行中放不下,那么就必须在一行后使用续行符来衔接到下一行。

提示 若要执行多重分支,Select Case 提供了一种结构化与适应性更强的方法。

On...GoSub 及 On...GoTo 语句示例

本示例使用 On...GoSubOn...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

source:VBA Help

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值