excel圖表While循環?在上一篇文章中,我們介紹的For-Next循環,能夠按照指定的數值進行有限次的循環。下面介紹在滿足指定的條件時才執行相應代碼塊的循環結構,先來看看Do While循環。
按照慣例,先舉一個例子。下面的代碼從當前單元格開始,逐行顯示單元格的內容,直到碰到空單元格為止。如果第一個單元格就為空,則不會執行循環。
Sub DoWhile0()
Dim i As Integer ‘聲明變量
i = 1 ‘初始化變量
Do While Cells(i, 1).Value <> “”
MsgBox “單元格A” & i & “的內容為:” & Cells(i, 1).Value
i = i + 1
Loop
End Sub
例如,在單元格區域A1:A5中依次輸入數字1、2、3、4、5,將當前單元格置于A1單元格(如所示),運行上面的代碼,將依次顯示數字1、2、3、4、5。
Do While循環的基本語法結構如下:
Do [While 條件語句]
[語句塊]
[Exit Do]
[語句塊]
Loop
或者:
Do
[語句塊]
[Exit Do]
[語句塊]
Loop [While 條件語句]
說明:
按照慣例,方括號中的內容表示可選項。
條件語句可以放在循環的開始處或者結尾處。如果放在開始處,那么先評估條件,滿足條件要求,就執行循環里面的語句;這種情況下,當始終不滿足條件時,就有可能一次也不會執行循環里面的語句。如果放在結尾處,則至少會執行一次循環里面的語句。
Exit Do語句表示提前退出循環。
將條件放置在結尾處,前面的示例代碼修改如下:
Sub DoWhile01()
Dim i As Integer ‘聲明變量
i = 1 ‘初始化變量
Do
MsgBox “單元格A” & i & “的內容為:” & Cells(i, 1).Value
i = i + 1
Loop While Cells(i, 1).Value <> “”
End Sub
此時,如果單元格A1為空,也會顯示一條消息框,然后退出循環。
用框圖分別表示Do While循環的兩種語法形式如下:
如果熟悉了Excel中的常用對象及其屬性,也可以將上面的代碼修改如下,實現相同的結果。
Sub DoWhile1()
Do While ActiveCell.Value <> “”
MsgBox “當前單元格的內容為:” & ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
Loop
End Sub
其中,Offset屬性表示下移一個單元格,即當前單元格下面的單元格。(單元格的常用屬性將在后續文章中詳細介紹)
將條件放置在結尾處,前面的示例代碼修改如下:
Sub DoWhile2()
Do
MsgBox “當前單元格的內容為:” & ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
Loop While ActiveCell.Value <> “”
End Sub
下面,為更深入理解Do While循環,我們來改寫上一篇中用來說明For-Next循環的示例。
示例1:如果想要在工作表單元格區域A1:A10中依次填寫數字1至10,也可以使用下面的包含Do While循環的代碼:
Sub DoWhile3()
Dim i As Integer ‘聲明變量
i = 1 ‘給變量賦初始值
‘循環
Do While i <= 10
Cells(i, 1).Value = i
i = i + 1
Loop
End Sub
注意,與For-Next循環不同的是,在進入循環之前,需要先給變量i賦初始值。在循環中,還需要能夠增加變量的值。
示例2:下面的代碼使用Do While循環求1至100的和,并顯示結果。
Sub DoWhile4()
‘聲明變量
Dim i As Integer
Dim sum As Integer
‘給變量賦初值
i = 1
sum = 0
‘循環并顯示結果
Do While i <= 100
sum = sum + i
i = i + 1
Loop
MsgBox “1至100的和為:” & sum
End Sub
示例3:下面的代碼使用Do While循環求1至100之間的偶數和并顯示結果。
Sub DoWhile5()
‘聲明變量
Dim i As Integer
Dim sum As Integer
‘給變量賦初值
i = 1
sum = 0
‘循環并顯示結果
Do While i <= 100
If (i Mod 2 = 0) Then
sum = sum + i
End If
i = i + 1
Loop
MsgBox “1至100的和為:” & sum
End Sub
在編寫程序時,我們可以使用多種方法實現想要的結果,您可以根據具體情況選擇實現方式,這也是編程的一大美妙之處。