VBA基础学习之1.5循环语句

VBA基础学习之循环语句
当需要多次执行一段代码时 , 就可以使用循环语句 。一般来说 , 语句是按顺序执行的:函数中的第一个语句首先执行 , 然后是第二个 , 依此类推 。
编程语言提供了各种控制结构 , 允许更复杂的执行路径 。
循环语句允许多次执行语句或语句组 。以下是VBA中循环语句的一般形式 。
1.5.1 For 循环
for循环是一种重复控制结构 , 它允许开发人员有效地编写需要执行特定次数的循环 。
For counter = start To end [Step stepcount][statement 1][statement 2]....[statement n][Exit For][statement 11][statement 22]....[statement n]Next
以下是For循环中的控制流程 -
Private Sub Constant_demo_Click()Dim a As Integera = 10For i = 0 To a Step 2MsgBox ("The value is i is : " & i)NextEnd Sub
1.5.2 For Each循环
For Each循环用于为数组或集合中的每个元素执行语句或一组语句 。
For Each循环与For循环类似; 然而 , For Each循环是为数组或组中的每个元素执行的 。因此 , 这种类型的循环中将不存在步计数器 。它主要用于数组或在文件系统对象的上下文中使用 , 以便递归操作 。
For Each element In Group[statement 1][statement 2]....[statement n][Exit For][statement 11][statement 22]Next
Private Sub Constant_demo_Click()'fruits is an arrayfruits = Array("苹果", "橙子", "樱桃")Dim fruitnames As Variant'iterating using For each loop.For Each Item In fruitsfruitnames = fruitnames & Item & Chr(10)NextMsgBox fruitnamesEnd Sub
1.5.3 While Wend循环
在While…Wend循环中 , 如果条件为True , 则会执行所有语句 , 直到遇到Wend关键字 。
如果条件为false , 则退出循环 , 然后控件跳转到Wend关键字后面的下一个语句 。
While condition(s)[statements 1][statements 2]...[statements n]Wend
Private Sub Constant_demo_Click()Dim Counter :Counter = 10While Counter < 15' Test value of Counter.Counter = Counter + 1' Increment Counter.msgbox "The Current Value of the Counter is : " & CounterWend' While loop exits if Counter Value becomes 15.End Sub
1.5.4 Do…While循环
一个Do…while循环用于只要条件为真就重复一组语句 。该条件可以在循环开始时或循环结束时检查 。
Do While condition[statement 1][statement 2]...[statement n][Exit Do][statement 1][statement 2]...[statement n]Loop
Private Sub Constant_demo_Click()Do While i < 5i = i + 1msgbox "The value of i is : " & iLoopEnd Sub
另外还有一个替代语句Do…while循环 , 用于在循环结束时检查条件 。下面的例子解释了这两种语法的主要区别 。语法 -
Do [statement 1][statement 2]...[statement n][Exit Do][statement 1][statement 2]...[statement n]Loop While condition
Private Sub Constant_demo_Click() i = 10Doi = i + 1MsgBox "The value of i is : " & iLoop While i < 3 'Condition is false.Hence loop is executed once.End Sub
1.5.5 Exit For语句
当想要根据特定标准退出For循环时 , 就可以使用Exit For语句 。当执行Exit For时 , 控件会立即跳转到For循环之后的下一个语句 。