当前位置:   article > 正文

Excel VBA 之For Next循环_vba for next

vba for next

.简单for循环

当你知道你需要重复运行多少次某段语句时,可以使用For…Next语句。它的语法如下:

  1. For 计数器 = 开始 To 结束 [step 步长]
  2. 语句1
  3. 语句2
  4. [Exit For]
  5. 语句N
  6. 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

  1. Sub test()
  2. For i = 1 To 5 Step 3
  3. Cells(i, i) = i
  4. Next i
  5. End Sub

程序将需要执行循环里面的指令2次。嵌套在循环里面的赋值语句(If…Then…Else)告诉程序给单元格(1,1)、(4,4)分别赋值为1和4

程序每完成一次循环,它就跳到关键字For来比较i的值和5的值。

二.多重for循环

一般情况下,我们只使用到一个For语句,如果你使用多个For语句,那么就是For语句的嵌套或多重使用了。

1、简单的三重for语句为:

  1. Sub test()
  2. Dim m
  3. Dim n
  4. Dim k
  5. m = 1
  6. n = 1
  7. k = 1
  8. For m = 1 To 6
  9. For n = 1 To 6
  10. For k = 1 To 6
  11. Next k
  12. Next n
  13. Next m
  14. End Sub

下面,我们来学习如何在多重循环中退出循环跳转至某个循环:要想学习多重循环中如何退出某个循环,我们可以跟踪并输出某个变量的值,就可以追踪到循环运行到哪个位置并退出循环了。

2、退出第三个循环

  1. Sub test()
  2. Dim m
  3. Dim n
  4. Dim k
  5. m = 1
  6. n = 1
  7. k = 1
  8. For m = 1 To 6 '第一个循环
  9. For n = 1 To 6 '第二个循环
  10. For k = 1 To 6 '第三个循环
  11. If (k = 3) Then
  12. Exit For
  13. End If
  14. Next k
  15. Next n
  16. Next m
  17. MsgBox ("现在的m值为:" & m & " 现在的n值为:" & n & " 现在的k值为:" & k)
  18. End Sub

此时的m为7、n为7,而k则为3,说明,第一第二个循环完全运行,而第三个循环每次都只运行到k等于3就退出第三个循环了,第三个循环没有完全运行。

3、退出第二个循环

  1. Sub test()
  2. Dim m
  3. Dim n
  4. Dim k
  5. m = 1
  6. n = 1
  7. k = 1
  8. For m = 1 To 6 '第一个循环
  9. For n = 1 To 6 '第二个循环
  10. If (n = 3) Then
  11. Exit For
  12. For k = 1 To 6 '第三个循环
  13. Next k
  14. End If
  15. Next n
  16. Next m
  17. MsgBox ("现在的m值为:" & m & " 现在的n值为:" & n & " 现在的k值为:" & k)
  18. End Sub

这个时候,m的值为7,n的值为3,而k的值为1,在这个循环过程中,第一个循环完全执行,第二个循环只执行到n=3就不再运行,而第三个循环一直都不执行。

4、退出第一个循环

  1. Sub test()
  2. Dim m
  3. Dim n
  4. Dim k
  5. m = 1
  6. n = 1
  7. k = 1
  8. For m = 1 To 6 '第一个循环
  9. If (m = 3) Then
  10. Exit For
  11. For n = 1 To 6 '第二个循环
  12. For k = 1 To 6 '第三个循环
  13. Next k
  14. Next n
  15. End If
  16. Next m
  17. MsgBox ("现在的m值为:" & m & " 现在的n值为:" & n & " 现在的k值为:" & k)
  18. End Sub

这个时候,m的值为3,n的值为1,而k的值为1,在这个循环过程中,第一个循环只执行到m=3就不再执行了,而第二第三个循环,一直都没有执行。

综上所述,上面的例子分别给大家列举了三重for循环,如何退出其中的某个循环,在此过程中,仅使用简单的Exit For语句就可以实现了,但是,难点在于,Exit For所放的位置,要配合if语句来使用,这样才起到效果,否则会导致循环嵌套的混乱。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/145487
推荐阅读
相关标签
  

闽ICP备14008679号