【烟花原创】VBA零基础之第19篇 Goto语句

通过Goto语句,可以无条件地转移到过程中的指定的行,从而实现不同程序段间作流程控制。
  
  语法:
   GoTo Line
   Line:必要参数,line可以是过程内任意的行号或行标签。

  什么是行号?
  用来识别一行代码。
  行号可以是任何数值的组合,在使用行号的过程内,该组合是唯一的。
  行号必须在从一列开始。(输入时,不在第一列,输入完成后,会自动调整到第一列)

  Sub GotoStatementDemo()
   Dim Number, MyString
   Number = 1
   '设置变量初始值。
   
   If Number = 2 Then GoTo 1 Else GoTo 2
   '判断 Number 的值以决定要完成那一个程序区段
   
   1:               MyString = "Number等于1"
   GoTo 3
   '完成后跳转到最后一行。
   
   2               
   MyString = "Number等于2"
   
   3:Debug.Print MyString
   '将MyString变量的值显示在“立即”窗口。
  End Sub

  经过测试:
   A.在代码区输入行号后接着输入语句(不用在行号后输入空格)后,VBE会自动帮你在行号和语句之间填入一个空格。
   例如当在一行输入5msgbox"a"回车后,VBE会帮你修正为5  msgbox  "a"
   B.行号可以单独占一行
   C.行号后面可加可不加冒号

  什么是行标签?
  用来指示一行代码。行标签可以是任何字符的组合,以字母开头,以冒号 (:) 结尾。
  行标签与大小写无关,必须从第一列开始。

  Sub GotoStatementDemo()
   Dim Number, MyString
   Number = 1
   '设置变量初始值。
   If Number = 1 Then GoTo Line1 Else GoTo Line2
   '判断 Number 的值以决定要完成那一个程序区段

   Line1:
   MyString = "Number等于1"
   GoTo LastLine
   ' 完成后跳转到最后一行。

   Line2:MyString = "Number等于2"

   LastLine:
   Debug.Print MyString
   '将MyString变量的值显示在“立即”窗口。
  End Sub

  对于标签,冒号是要求必须使用的。
  如果不使用,在有编译错误的提示(子过程或函数未定义)
  同一个模块内,标签也必要是唯一的。
  例如:
   Line1:msgbox "a"
   Line1:msgbox "a"
    运行时会有编译错误 (当前范围内重复声明)

另外需要注意的地方: 太多的 GoTo 语句,会使程序代码不容易阅读及调试。
   尽可能使用结构化控制语句(Do...Loop、For...Next、If...Then...Else、Select Case)。

(0)

相关推荐

  • Excel 宏 基本语法

    Excel 宏 基本语法

  • 第三十六集 goto跳转执行语句

    介绍了C语言中的goto语句

  • VBS示例:使用GoTo 语句

    示例使用 GoTo 语句分支到过程中的行标签. VB Sub GoToStatementDemo() Dim number As Integer = 1 Dim sampleString As Str ...

  • 140 VB数组和goto语句

    140  VB数组和goto语句      ●VB数组       数组是一组变量,默认的变量类型与普通变量相同,即首字母为a~g.o~z时为实数变量,首字母为h~n时为整数变量.     也可用Di ...

  • 【烟花原创】VBA零基础之第10篇 认识语句

    在上一篇认识Sub过程中,有提到" Sub过程是一系列由 Sub 和 End Sub 语句所包含起来的 Visual Basic 语句",今天我们就来一起来认识语句(打个预防针,理 ...

  • 【烟花原创】VBA零基础之第30篇 对象(五)

    一篇我们讲了如何引用对象,主要是通过从对象集合中进行引用,今天我们讲讲如何使用对象变量来引用对象. 什么是对象变量呢? 前面已经有过讲变量了,通俗的说,就是变量的类型是对象类型,象单元格,工作表,工作 ...

  • 【烟花原创】VBA零基础之第28篇 对象(三)

    上一篇讲到了对象,在VBA中,还有一个非常重要的概念:集合Collections 集合是一个包含一组类型相同的对象集.另外,其实集合自身也是一个对象. 下面列出一有些经常使用到的集合对象: 工作簿集合 ...

  • 【烟花原创】VBA零基础之第12篇 常量

    上一篇讲了变量,这一讲咱们聊聊常量(也有MS管叫常数). 一.什么是常量     常量就是程序在运行时保持一个固定的值的命名项目.     常量可以是字符串,数值,另一常量,或者任何(除Is之外) 算 ...

  • 【烟花原创】VBA零基础之第29篇 对象(四)

    引用对象是非常重要的,因为在代码里访问对象时必须指明需要操作的对象. 例如在日常中我们找某人的,肯定会喊某人的名字(不认识的可以喊美女帅哥),人家才会理你. 可在VBA代码中,你必须实打实的指明某个特 ...

  • 【烟花原创】VBA零基础之第27篇 对象(二)

    上一篇我们讲到Excel自身就是一个对象,应用程序(Application)是这个对象层次中的最顶层,下面列出了在Application对象中一些经常使用到的对象: 引用Addin 窗口Window ...

  • 【烟花原创】VBA零基础之第26篇 对象(一)

    对象,这词大家再熟悉不过了,此对象非彼对象. 对象代表应用程序中的元素. 例如在Excel中,我们用到的单元格,工作表,工作簿,图表,数据透视表等等都是对象. 引用JAVA<编程思想>里面 ...

  • 【烟花原创】VBA零基础之第18篇 Do…Loop循环 (二)

    上一篇讲的是当使用 While 关键字去检查 Do...Loop 语句中的条件时,有两种方法. 可以在进入循环之前检查条件,也可以在循环至少运行一次之后才检查条件. 今天要讲的是在Do-Loop循环中 ...

  • 【烟花原创】VBA零基础之第17篇 Do…Loop循环 (一)

    上一篇聊过了以指定次数执行语句的For Next循环,但是当我们不知道循环具体会运行多少次,但能通过某种条件的变化来实现控制循环的开始和结束,这便是今天咱们要聊聊的的Do-Loop循环. 一.当条件为 ...