经常地,当编写代码时,我们希望将一段代码执行若干次,我们可以在代码中使用循环语句来完成这项工作。
循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句。
For...Next:指定循环次数,使用计数器重复运行语句
Do...Loop:当条件为 true 或者直到条件为 true 时,运行循环
While…Wend:当条件为True时循环
For Each...Next:对于集合中的每项或数组中的每个元素,重复执行一组语句
---------------------------------------- 分割线 -------------------------------------------------------
For...Next 语句
指定循环次数,使用计数器重复运行语句,语法结构如下:
For counter = start To end [Step step] 'counter 用做循环计数器的数值变量, start:counter的初值, end:counter的终值, step:counter的步长
[statements]
[Exit For] '退出循环
[statements]
Next
Dim Count:Count = '定义一个变量,并赋值为0
For i = To '循环10次 ,For 语句规定计数变量以及它的开始值和结束值
Count = Count +
Next 'Next 语句会以 1 作为步长来递增变量i
MsgBox Count '输出10 ' 退出循环:Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。 Dim Count:Count = '定义一个变量,并赋值为0
For i = To step '循环10次,步长为2,通过使用 Step 关键词,我们可以规定计数变量递增或递减的步进值
Count = Count +
If Count = Then '当变量Count的值为3时,退出当前循环
Exit For '退出循环
End If
Next
MsgBox Count '输出3
Do 循环 当(或直到)条件为True时循环
重复执行语句直到条件变为True Dim Count:Count = '定义一个变量
Do Until Count = '直到Count变量为0时,否则一直循环
MsgBox Count
Count = Count -
Loop
MsgBox "循环结束" Dim Count:Count = '定义一个变量
Do
MsgBox Count
Count = Count -
Loop Until Count = '直到Count变量为0时,否则一直循环
MsgBox "循环结束" 当条件变为True之前重复执行某语句块 Dim Count:Count = '定义一个变量
Do While Count <> '当Count变量为0时,停止循环
MsgBox Count
Count = Count -
Loop
MsgBox "循环结束" Dim Count:Count = '定义一个变量
Do
MsgBox Count
Count = Count -
Loop While Count <> '当Count变量为0时,停止循环
MsgBox "循环结束" Exit Do 语句用于退出 Do...Loop 循环
Dim Count:Count = '定义一个变量
Do While Count <> '当Count变量为0时,停止循环
MsgBox Count
Count = Count -
If Count = Then '判断Count变量值是否为2,如果是则退出循环
Exit Do
End If
Loop
MsgBox "循环结束"
While…Wend 当条件为True时循环
Dim Count:Count = '定义一个变量
While Count <> '当Count变量值不等于0,一直循环
MsgBox Count
Count = Count -
Wend
MsgBox "循环结束" While…Wend 没有Exit语句,从头一直循环到尾,若要在中途退出,则需用Do…Loop语句
For Each...Next 语句
For Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。
Dim Dics '定义一个变量
Set Dics = CreateObject("Scripting.Dictionary") '定义一个Dictionary对象
Dics.Add "", "Athens" '为Dictionary对象赋值
Dics.Add "", "Belgrade"
Dics.Add "", "Cairo"
For Each Dic in Dics
MsgBox Dics.Item(Dic) '循环遍历,且输出Dictionary键值
Next