一.简单for循环
当你知道你需要重复运行多少次某段语句时,可以使用For…Next语句。它的语法如下:
For 计数器 = 开始 To 结束 [step 步长]语句1语句2[Exit For]语句N
Next [计数器]
从开始到结束,反复执行For和Next之间的指令块,除非遇到Exit For语句,将提前跳出循环。其中,步长和Exit For语句以及Next后的计数器均为可选项。
计数器是个储存反复次数的数字型变量,开始是你期望的起始计数点,结束则表明循环应该执行多少次,步长是计数器每次的变化量(可正可负)。
当程序遇到关键字Next时,它将回到循环的开始处,并且再次执行循环里面的代码,直到计数器到达结束值。一旦计数器的值大于关键字To后面的数值,程序就会跳出循环。因为计数器变量在每次执行循环后会自动地变化,它早晚会超出结束的值。每次程序执行循环里的语句后,变量计数器的值会默认地增加1,你可以使用Step语句来改变这个默认设置。例如,要使计数器每次增加3,就可以使用以下语句:
For counter = 1 To 5 Step 3
验证:将单元格(1,1)、(4,4)分别赋值为1和4
Sub test()For i = 1 To 5 Step 3Cells(i, i) = iNext i
End Sub
程序将需要执行循环里面的指令2次。嵌套在循环里面的赋值语句(If…Then…Else)告诉程序给单元格(1,1)、(4,4)分别赋值为1和4
程序每完成一次循环,它就跳到关键字For来比较i的值和5的值。
二.多重for循环
一般情况下,我们只使用到一个For语句,如果你使用多个For语句,那么就是For语句的嵌套或多重使用了。
1、简单的三重for语句为:
Sub test()Dim mDim nDim km = 1n = 1k = 1For m = 1 To 6For n = 1 To 6For k = 1 To 6Next kNext nNext m
End Sub
下面,我们来学习如何在多重循环中退出循环跳转至某个循环:要想学习多重循环中如何退出某个循环,我们可以跟踪并输出某个变量的值,就可以追踪到循环运行到哪个位置并退出循环了。
2、退出第三个循环
Sub test()Dim mDim nDim km = 1n = 1k = 1For m = 1 To 6 '第一个循环For n = 1 To 6 '第二个循环For k = 1 To 6 '第三个循环If (k = 3) ThenExit ForEnd IfNext kNext nNext mMsgBox ("现在的m值为:" & m & " 现在的n值为:" & n & " 现在的k值为:" & k)
End Sub
此时的m为7、n为7,而k则为3,说明,第一第二个循环完全运行,而第三个循环每次都只运行到k等于3就退出第三个循环了,第三个循环没有完全运行。
3、退出第二个循环
Sub test()Dim mDim nDim km = 1n = 1k = 1For m = 1 To 6 '第一个循环For n = 1 To 6 '第二个循环If (n = 3) ThenExit ForFor k = 1 To 6 '第三个循环Next kEnd IfNext nNext mMsgBox ("现在的m值为:" & m & " 现在的n值为:" & n & " 现在的k值为:" & k)
End Sub
这个时候,m的值为7,n的值为3,而k的值为1,在这个循环过程中,第一个循环完全执行,第二个循环只执行到n=3就不再运行,而第三个循环一直都不执行。
4、退出第一个循环
Sub test()Dim mDim nDim km = 1n = 1k = 1For m = 1 To 6 '第一个循环If (m = 3) ThenExit ForFor n = 1 To 6 '第二个循环For k = 1 To 6 '第三个循环Next kNext nEnd IfNext mMsgBox ("现在的m值为:" & m & " 现在的n值为:" & n & " 现在的k值为:" & k)
End Sub
这个时候,m的值为3,n的值为1,而k的值为1,在这个循环过程中,第一个循环只执行到m=3就不再执行了,而第二第三个循环,一直都没有执行。
综上所述,上面的例子分别给大家列举了三重for循环,如何退出其中的某个循环,在此过程中,仅使用简单的Exit For语句就可以实现了,但是,难点在于,Exit For所放的位置,要配合if语句来使用,这样才起到效果,否则会导致循环嵌套的混乱。