购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 控制语句

在过程或函数中编写的语句是按照先后顺序执行的,而在实际应用中经常需要一些特殊的执行顺序,如重复、选择等。为此,除了顺序语句外,程序设计语言中还包含另外两种流程控制语句:循环语句与判断语句。

2.4.1 循环语句

在某些情况下,可能需要重复性地执行一组语句,如给数组元素赋值,此时,可采用循环语句加以简化。循环结构包含两种不同的循环方式:For(计数循环)和Do(当循环)。

1.For循环

通常用于按指定的次数进行循环。常见的有以下的两种:

For...Next

For Each...Next

(1)For...Next

功能描述:通常用于完成指定次数的循环。

语法形式为:

For Counter=Start to End [Step Cou]

...

Next

Counter表示变量;Start表示变量的起始值;End表示结束值;Cou表示相邻值间的跨度,若该参数省略则表示跨度为1。下面用一个示例来演示通过For...Next语句定义数组,并将数组中的元素依次赋值为1,2,3,…,10。操作步骤如下:

按Alt+F11组合键打开VBA编辑器,选择插入“模块1”,在代码编辑窗口中输入图2-11所示代码。

按Ctrl+G组合键打开“立即窗口”,然后按F5键运行代码,即可在“立即窗口”中显示出结果,如图2-12所示。

图2-11

图2-12

(2)For Each...Next

功能描述:通常用于对集合中的每个对象执行重复的任务。

语法形式为:

For Each Object in Objects

...

Next Object

在本语法中,对于指定集合中的每个对象都执行同一个代码段。其中,Object表示对象名,Objects表示集合名。示例如下:

按Alt+F11组合键打开VBA编辑器,选择插入“模块2”,在代码编辑窗口中输入图2-13所示代码。

图2-13

按F5键运行代码,即可弹出显示第1个工作表名称的消息提示框,如图2-14所示。

依次单击“确定”按钮,即可弹出显示其他工作表名称的消息提示框,如图2-15、图2-16所示。

图2-14

图2-15

图2-16

2.Do循环

Do循环比For循环结构更为灵活,该循环依据条件控制过程的流程。在VBA中通常可以看到如下几种Do循环方式:

● Do While...Loop

● Do...Loop While

● Do Until...Loop

● Do...Loop Until

(1)Do While...Loop

功能描述:该结构只有当条件为真时循环才会继续,而条件为假时则直接退出循环。

语法形式为:

Do While Condition

...

Loop

在本语法中,首先判断Condition是否为真,如果为真则执行语句,Loop则表示循环继续;当Condition的值为假时,退出循环。

(2)Do...Loop While

功能描述:该结构功能与Do While...Loop相似,不同之处在于本语句先运行代码,后判断条件是否为真。

语法形式为:

Do

...

Loop While 条件

(3)Do Until...Loop

功能描述:表示条件为假时执行语句,而条件为真时退出运行。

语法形式为:

Do Until <条件>

...

Loop

示例如下:

按Alt+F11组合键打开VBA编辑器,选择插入“模块3”,在代码编辑窗口中输入图2-17所示代码。

按Ctrl+G组合键打开“立即窗口”,然后按F5键运行代码,即可在“立即窗口”中显示结果,如图2-18所示。

图2-17

(4)Do...Loop Until

功能描述:该结构功能与Do Until...Loop相似,不同之处在于本语句先运行代码,后判断条件是否为真。

语法形式为:

Do

...

Loop Until 条件

图2-18

2.4.2 判断语句

判断语句主要依赖条件值,并根据具体值对程序进行控制。通常的判断语句包括IF语句与Select语句。

1.IF语句

IF语句是程序开发过程中使用频率非常高的语句,程序中的很多判断逻辑都需要用其来实现,如在计算销售奖金时,需要判断输入的数值是否大于指定的销售金额。

语法形式为:

示例如下:

按Alt+F11组合键打开VBA编辑器,选择插入“模块1”,在代码编辑窗口中输入图2-19所示代码。

图2-19

按F5键运行代码,在弹出的消息框中输入成本值,如图2-20所示。

单击“确定”按钮,即可计算出佣金值,如图2-21所示。

图2-20

图2-21

2.Select语句

当条件过多时,利用IF嵌套的方式会非常烦琐,此时就可以借用Select...Case结构方式来实现。该语句首先提供表达式,并列出所有可能的结果,当表达式的结果与列出的值相匹配时,就会执行相应的语句,若不匹配则执行默认语句。

语法形式为:

知识提示

Select...Case语句不能包含两个相同的条件。

2.4.3 GoTo语句

GoTo语句通常用来改变程序执行的顺序,跳过程序的某部分直接去执行另一部分,也可返回已经执行过的某语句使之重复执行。

语法形式为:

GoTo {标号|行号}

GoTo语句是早期Basic语言中常用的一种流程控制语句。但是过量使用GoTo语句会导致程序运行跳转频繁、程序控制和调试难度加大,因此在VB、VBA等程序设计语言中都应尽量避免使用GoTo语句。

在VBA中,GoTo语句主要用于错误处理“On Error GoTo Label”结构。 t0/omTdkqYMVmy75TaHl9+QEJYFsOQ4z5wtqqlFSgIvaN7WYXhLuzktSLm88erv9

点击中间区域
呼出菜单
上一章
目录
下一章
×