VBA基础学习之循环语句


当需要多次执行一段代码时,就可以使用循环语句。 一般来说,语句是按顺序执行的:函数中的第一个语句首先执行,然后是第二个,依此类推。

编程语言提供了各种控制结构,允许更复杂的执行路径。

循环语句允许多次执行语句或语句组。 以下是VBA中循环语句的一般形式。
VBA基础学习之1.5循环语句
VBA基础学习之1.5循环语句


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 

VBA基础学习之1.5循环语句
以下是For循环中的控制流程 -

  • For步骤先执行。这一步允许您初始化任何循环控制变量,并递增步进计数器变量。
  • 其次,评估条件。 如果评估结果为:True,则循环体被执行。 如果为False,则循环体不会执行,并且控制流将跳转到紧跟在For循环之后的下一个语句。
  • 在执行For循环体之后,控制流将跳转到下一个语句。 这个语句更新任何循环控制变量。 它根据步计数器值进行更新。
  • 现在条件再次评估。 如果条件为:True,则循环执行并且该过程重复自身(循环体,然后递增步,然后再次条件)。 条件变为False后,For循环终止。
Private Sub Constant_demo_Click()    Dim a As Integer    a = 10     For i = 0 To a Step 2       MsgBox ("The value is i is : " & i)    Next End 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 array    fruits = Array("苹果", "橙子", "樱桃")    Dim fruitnames As Variant     'iterating using For each loop.    For Each Item In fruits       fruitnames = fruitnames & Item & Chr(10)    Next     MsgBox fruitnames End Sub 

1.5.3 While Wend循环
在While…Wend循环中,如果条件为True,则会执行所有语句,直到遇到Wend关键字。

如果条件为false,则退出循环,然后控件跳转到Wend关键字后面的下一个语句。

While condition(s)    [statements 1]    [statements 2]    ...    [statements n] Wend 

VBA基础学习之1.5循环语句

Private Sub Constant_demo_Click()    Dim Counter :  Counter = 10        While Counter < 15     ' Test value of Counter.       Counter = Counter + 1   ' Increment Counter.       msgbox "The Current Value of the Counter is : " & Counter    Wend   ' 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 

VBA基础学习之1.5循环语句

Private Sub Constant_demo_Click()    Do While i < 5       i = i + 1       msgbox "The value of i is : " & i    Loop End 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 = 10    Do       i = i + 1       MsgBox "The value of i is : " & i    Loop While i < 3 'Condition is false.Hence loop is executed once. End Sub 

1.5.5 Exit For语句
当想要根据特定标准退出For循环时,就可以使用Exit For语句。当执行Exit For时,控件会立即跳转到For循环之后的下一个语句。
VBA基础学习之1.5循环语句

Private Sub Constant_demo_Click()    Dim a As Integer    a = 10     For i = 0 To a Step 2 'i is the counter variable and it is incremented by 2       MsgBox ("The value is i is : " & i)       If i = 4 Then          i = i * 10 'This is executed only if i=4          MsgBox ("The value is i is : " & i)          Exit For 'Exited when i=4       End If    Next End Sub 

1.5.6 Exit Do语句
当想要根据特定标准退出Do循环时,可使用Exit Do语句。 它可以同时用于Do…While和Do…Until直到循环。

当Exit Do被执行时,控制器在Do循环之后立即跳转到下一个语句。

Private Sub Constant_demo_Click()    i = 0    Do While i <= 100       If i > 10 Then          Exit Do   ' Loop Exits if i>10       End If       MsgBox ("The Value of i is : " & i)       i = i + 2    Loop End Sub 

本文来互联网采集,已注明来源,如未注明来源可能来源未知,如有侵权请联系站长删除处理。

发表回复

后才能评论