快捷搜索:  汽车  科技

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)也可以使用负步长,如下所示:在上面的示例中,步长被指定为0.1,因此每次循环时,变量d的值依次设置为0.0、0.1、0.2、0.3、…、9.9、10.0。For ... Next循环使用一个变量,该变量遍历指定范围内的一系列值,对每个值执行循环体中的代码,如下所示:示例中的For ... Next循环设置变量i的值为1、2、3、…、10,并且对于每一个值,都执行同一段代码。因此,在上面的例子中,循环将数组iArray的每个元素值加到变量Total中。上面的示例中没有指定步长,因此循环从1增长到10的过程中,使用默认步长1。但是,也可以使用不同的步长来执行循环,使用Step关键字实现这一功能,如下所示:

概述

如果在VBA程序中,需要多次执行同一任务(即重复同一段代码),则可以使用循环来完成。

VBA循环类型包括:

  • For循环For Loop
  • Do While循环Do While Loop
  • Do Until循环Do Until Loop

下面分别讨论每种循环类型。

For循环

For循环采用两种不同的形式,即For ... Next循环和For Each循环。

For ... Next循环

For ... Next循环使用一个变量,该变量遍历指定范围内的一系列值,对每个值执行循环体中的代码,如下所示:

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)(1)

示例中的For ... Next循环设置变量i的值为1、2、3、…、10,并且对于每一个值,都执行同一段代码。因此,在上面的例子中,循环将数组iArray的每个元素值加到变量Total中。

上面的示例中没有指定步长,因此循环从1增长到10的过程中,使用默认步长1。但是,也可以使用不同的步长来执行循环,使用Step关键字实现这一功能,如下所示:

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)(2)

在上面的示例中,步长被指定为0.1,因此每次循环时,变量d的值依次设置为0.0、0.1、0.2、0.3、…、9.9、10.0。

也可以使用负步长,如下所示:

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)(3)

在上面的示例中,步长被指定为-1,因此循环将变量i依次设置为值10、9、8、…,1。

For Each循环

For Each循环类似于For ... Next循环,但是For Each循环遍历一组对象中的每个对象,而不是获取变量的一系列值。例如,以下代码使用For Each循环列出当前Excel工作簿中每个工作表:

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)(4)

Exit For语句

Exit For语句用于提前退出For循环,该语句将导致VBA跳出循环并继续执行循环体外的下一行代码。例如,在数组中搜索特定值时,使用循环检查数组的每个元素,一旦找到目标值,就不需要再继续搜索,此时可以提前退出循环。

下面的示例Exit For语句的使用,代码循环遍历100个数组元素,并将每个元素与值dVal进行比较,如果找到dVal值,循环将提前退出:

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)(5)

Do While循环

当指定的条件求值为True时,Do While循环重复执行一段代码。如下子程序所示,Do While循环用于打印Fibonacci序列的所有值,直到当前值大于1000时停止循环:

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)(6)

同以上可以看出,条件iFib_Next<1000在循环开始时被测试。因此,如果iFib_Next的第一个值大于1000,则根本不会执行循环。

还可以把Do While循环的条件测试放在循环的末尾,这将导致循环至少执行一次,而不管条件最初的计算结果是否为True。

以下代码显示了Do While循环的另一种形式,在循环末尾测试条件:

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)(7)

Do Until循环

Do Until循环与Do While循环非常相似,重复执行一段代码,直到指定的条件计算为True。如下子程序所示,使用Do Until循环从工作表a列的所有单元格中提取值,直到遇到空单元格为止:

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)(8)

在上面的例子中,由于条件IsEmpty(Cells(iRow,1))处于Do Until循环的开始,因此只有遇到的第一个单元格非空时,才会进入循环。

与Do While循环相同,如果希望至少进入一次循环,而不管初始条件如何,在这种情况下,条件可以放在循环的末尾,如下所示:

excelvba怎么跳出循环(Excel中使用VBA你不可不知道循环语句)(9)

猜您喜欢: