在VBA当中,同样和编程语言一样,有着for循环语句。其语法为如下:
For <计数器=开始数> To <结束数> [step 步长]
[指令]
[Exit For]
[指令]
Next [计数器]
从开始到结束,反复执行For和Next之间的指令块,除非遇到Exit For语句,将提前跳出循环。其中,步长和Exit For语句以及Next后的计数器均为可选项。
一般情况下,我们只使用到一个For语句,如果你使用多个For语句,那么就是For语句的嵌套或多重使用了。
简单的For语句举例如下:
For k = 1 To 6
MsgBox ("现在的N值为:" & k)
Next k
下面我们给大家介绍多重for语句循环的使用,其中,包括如何退出嵌套语句中的某一个多多重循环。
For…Next循环中可以再包含For…Next循环,即For…Next循环可以嵌套使用。
简单的三重for语句为:
Dim m
Dim n
Dim k
m = 1
n = 1
k = 1
For m = 1 To 6
For n = 1 To 6
For k = 1 To 6
Next k
Next n
Next m
下面,我们来学习如何在多重循环中退出循环跳转至某个循环:要想学习多重循环中如何退出某个循环,我们可以跟踪并输出某个变量的值,就可以追踪到循环运行到哪个位置并退出循环了。
一、退出第三个循环
Dim m
Dim n
Dim k
m = 1
n = 1
k = 1
For m = 1 To 6 '第一个循环
For n = 1 To 6 '第二个循环
For k = 1 To 6 '第三个循环
If (k = 3) Then
Exit For
End If
Next k
Next n
Next m
MsgBox ("大众计算机提示您:现在的m值为:" & m & "现在的n值为:" & n & "现在的k值为:" & k)
此时的m为7、n为7,而k则为3,说明,第一第二个循环完全运行,而第三个循环每次都只运行到k等于3就退出第三个循环了,第三个循环没有完全运行。
二、退出第二个循环
Dim m
Dim n
Dim k
m = 1
n = 1
k = 1
For m = 1 To 6 '第一个循环
For n = 1 To 6 '第二个循环
If (n = 3) Then
Exit For
For k = 1 To 6 '第三个循环
Next k
End If
Next n
Next m
MsgBox ("大众计算机提示您,现在的m值为:" & m & "现在的n值为:" & n & "现在的k值为:" & k)
这个时候,m的值为7,n的值为3,而k的值为1,在这个循环过程中,第一个循环完全执行,第二个循环只执行到n=3就不再运行,而第三个循环一直都不执行。
三、退出第一个循环
Dim m
Dim n
Dim k
m = 1
n = 1
k = 1
For m = 1 To 6 '第一个循环
If (m = 3) Then
Exit For
For n = 1 To 6 '第二个循环
For k = 1 To 6 '第三个循环
Next k
Next n
End If
Next m
MsgBox ("大众计算机提示您,现在的m值为:" & m & "现在的n值为:" & n & "现在的k值为:" & k)
这个时候,m的值为3,n的值为1,而k的值为1,在这个循环过程中,第一个循环只执行到m=3就不再执行了,而第二第三个循环,一直都没有执行。
综上所述,上面的例子分别给大家列举了三重for循环,如何退出其中的某个循环,在此过程中,仅使用简单的Exit For语句就可以实现了,但是,难点在于,Exit For所放的位置,要配合if语句来使用,这样才起到效果,否则会导致循环嵌套的混乱。