VBA :goto语句用法,标签和行号。

1 goto语句功能和局限性

  • 用处
  • goto 可以语句跳转
  • 但肯定不如 do while , 还有call function 等更好
  • 坏处
  • 容易导致死循环,如果不加判断条件判断
  • 只能是本过程内,本函数内,不能跨过程等。

2 goto语句的语法

语法:goto 行号/行标签

  • goto可以跳转到 行号,或行标签
  • 语法: 标签+冒号(可以省略冒号)
  • 行号:
  •         错误:可以查VBE的行数  (数字)
  •         行号:其实就是数字标签
  • 行标签:需要先定义
  •         可以是 字母开头,甚至是中文都可以

2.1 正确写法:

  • 带不带冒号都可以
  • lineA: 
  • lineA
  • 1:
  • 2   
  • 哈哈:    '尝试过,中文都可以。。。

2.3 测试的代码和验证结果

Sub ft1()
i = 0

lineA:
22
1: i = i + 1

Debug.Print "i=" & i

    If i <= 3 Then
        Debug.Print "执行1"
        GoTo 1
    ElseIf i <= 6 And i > 3 Then
        Debug.Print "执行22"
        GoTo 22
    ElseIf i <= 9 And i > 6 Then  'if不给力?
        Debug.Print "执行A:"
        GoTo lineA:
    ElseIf i <= 12 And i > 9 Then
        Debug.Print "执行A"
       GoTo lineA
    End If

End Sub

代码里用if判断是给力的,之前写的有点画蛇添足了

用if 或 用 select case 都是可以的

Sub ft2()
i = 0

lineA:
22
1: i = i + 1

Debug.Print "i=" & i

    If i <= 3 Then
        Debug.Print "执行1"
        GoTo 1
    ElseIf i <= 6 Then
        Debug.Print "执行22"
        GoTo 22
    ElseIf i <= 9 Then   'if不给力?
        Debug.Print "执行A:"
        GoTo lineA:
    ElseIf i <= 12 Then
        Debug.Print "执行A"
       GoTo lineA
    End If

End Sub

4  VBE自带的行号,不是goto的需要 标签/行号

  • VBE其实是有默认行号显示的,只是如果窗口不宽时,可能会被自动隐藏
  • 但是没直接显示在左边行首,而是显示在上面
  • 但是这个行号没法用在goto 语法里
     

VBE如果想加其他编辑器一样的左边行首行号

下面有很多大牛讨论过

VBA代码编辑器中显示行号-Excel VBA程序开发-ExcelHome技术论坛 -

如何在VBA代码中添加行号?-Excel VBA程序开发-ExcelHome技术论坛 -

5 goto的其他用法  on .... goto

用来处理报错的

on error goto 

on error resume next

on    goto 

on  gosub

还有其他用法,比如

if  .... then goto

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值