經常地,當編寫代碼時,我們希望將一段代碼執行若干次,我們可以在代碼中使用循環語句來完成這項工作。
循環可分為三類:一類在條件變為 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 '定義一個變量,并賦值為0
For i = 1 To 10 '循環10次 ,For 語句規定計數變量以及它的開始值和結束值
Count = Count + 1
Next 'Next 語句會以 1 作為步長來遞增變量i
MsgBox Count '輸出10 '
退出循環:Exit For 語句用于在計數器達到其終止值之前退出 For...Next 語句。
Dim Count:Count = 0 '定義一個變量,并賦值為0
For i = 1 To 10 step 2 '循環10次,步長為2,通過使用 Step 關鍵詞,我們可以規定計數變量遞增或遞減的步進值
Count = Count + 1
If Count = 3 Then '當變量Count的值為3時,退出當前循環
Exit For '退出循環
End If
Next
MsgBox Count '輸出3
指定循環次數,使用計數器重復運行語句,語法結構如下:
For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next
主要參數:
counter:用做循環計數器的數值變量。這個變量不能是數組元素或用戶自定義類型的元素。
start:counter的初值。
end:counter的終值。
step:counter的步長。如果沒有指定,則step的默認值為1。
具體示例代碼如下:
For…Next
Dim Count:Count = 0 '定義一個變量,并賦值為0
For i = 1 To 10 '循環10次
Count = Count + 1
Next
MsgBox Count '輸出10
Step設置計數器循環步長
Dim Count:Count = 0 '定義一個變量,并賦值為0
For i = 1 To 10 Step 2 '設置計數器步長為2,循環5次
Count = Count + 1
Next
MsgBox Count '輸出5
退出循環
Exit For 語句用于在計數器達到其終止值之前退出 For...Next 語句。因為通常只是在某些特殊情況下(例如在發生錯誤時)要退出循環,所以可以在 If...Then...Else 語句的 True 語句塊中使用 Exit For 語句。如果條件為 False,循環將照常運行。
Dim Count:Count = 0 '定義一個變量,并賦值為0
For i = 1 To 10 '循環10次
Count = Count + 1
If Count = 5 Then '當變量Count的值為5時,退出當前循環
Exit For
End If
Next
MsgBox Count '輸出5
Do 循環 當(或直到)條件為True時循環
重復執行語句直到條件變為True
Dim Count:Count = 5 '定義一個變量
Do Until Count = 0 '直到Count變量為0時,否則一直循環
MsgBox Count
Count = Count -1
Loop
MsgBox "循環結束"
Dim Count:Count = 5 '定義一個變量
Do
MsgBox Count
Count = Count -1
Loop Until Count = 0 '直到Count變量為0時,否則一直循環
MsgBox "循環結束"
當條件變為True之前重復執行某語句塊
Dim Count:Count = 5 '定義一個變量
Do While Count > 0 '當Count變量為0時,停止循環
MsgBox Count
Count = Count -1
Loop
MsgBox "循環結束"
Dim Count:Count = 5 '定義一個變量
Do
MsgBox Count
Count = Count -1
Loop While Count > 0 '當Count變量為0時,停止循環
MsgBox "循環結束"
Exit Do 語句用于退出 Do...Loop 循環
Dim Count:Count = 5 '定義一個變量
Do While Count > 0 '當Count變量為0時,停止循環
MsgBox Count
Count = Count -1
If Count = 2 Then '判斷Count變量值是否為2,如果是則退出循環
Exit Do
End If
Loop
MsgBox "循環結束"
While…Wend 當條件為True時循環
Dim Count:Count = 5 '定義一個變量
While Count > 0 '當Count變量值不等于0,一直循環
MsgBox Count
Count = Count -1
Wend
MsgBox "循環結束"
While…Wend 沒有Exit語句,從頭一直循環到尾,若要在中途退出,則需用Do…Loop語句
For Each...Next 語句
For Each...Next 不是將語句運行指定的次數,而是對于數組中的每個元素或對象集合中的每一項重復一組語句。這在不知道集合中元素的數目時非常有用。
Dim Dics '定義一個變量
Set Dics = CreateObject("Scripting.Dictionary") '定義一個Dictionary對象
Dics.Add "0", "Athens" '為Dictionary對象賦值
Dics.Add "1", "Belgrade"
Dics.Add "2", "Cairo"
For Each Dic in Dics
MsgBox Dics.Item(Dic) '循環遍歷,且輸出Dictionary鍵值
Next