VB的循環(huán)嵌套

2021-12-08 14:30 更新

到目前為止,你已經(jīng)在本章里嘗試了很多種循環(huán)了,每種過程示范每個循環(huán)結(jié)構(gòu)的使用。然而,在編程中,一循環(huán)總是放在另外一循環(huán)中的。VB允許你將不同類型的循環(huán)(For和Do循環(huán))“嵌套”在同一個過程里。當你編寫循環(huán)嵌套時,請確保每個內(nèi)部的循環(huán)在外部循環(huán)里面已經(jīng)完成。另外,每個循環(huán)都必須有其自己獨特的計數(shù)器變量。如果使用循環(huán)嵌套,你可以更有效地執(zhí)行特定的任務。

下面顯示的過程ColorLoop示范如何嵌套一個For…Next循環(huán)在另一個For…Next循環(huán)里面:

Sub ColorLoop()
Dim myRow As Integer
Dim myCol As Integer
Dim myColor As Integer
myColor = 0
For myRow = 1 To 8
For myCol = 1 To 7
Cells(myRow, myCol).Select
myColor = myColor + 1
With Selection.Interior
.ColorIndex = myColor
.Pattern = xlSolid
End With
Next myCol
Next myRow
End Sub

上面的過程ColorLoop使用了兩個For…Next循環(huán)來改變工作表中前面八行和七列里的每個單元格的顏色。當外部的循環(huán)在追蹤行號的時候,內(nèi)部的循環(huán)在做更多的事情,它首先確定當前的列號,基于當前的行號的列號選擇適當?shù)膯卧?,然后給所選的單元格設(shè)置顏色。


內(nèi)部的For…Next循環(huán)給工作表的第一行的七個單元格(A1, B1, C1, D1, E1, F1和G1)設(shè)置不同的顏色。當變量myCol大于7時,VB跳回外部循環(huán)并且變量myRow增加1,再回到內(nèi)部循環(huán)去設(shè)置下一行單元格的顏色。當過程結(jié)束時,56個單元格(8*7)被設(shè)置了當前調(diào)色板上可用的所有顏色。第一個單元格,A1,被設(shè)置了黑色(顏色索引號為1),第二個單元格B1則被設(shè)置為白色了(顏色索引號為2)。每次單元格地址變化——Cells(myRow, myCol).Select——變量myColor的內(nèi)容也會改變——myColor = myColor + 1

在本章里,你學習了如何在循環(huán)里重復一組代碼。通過使用好幾種類型的循環(huán),你看到了每種循環(huán)
稍稍不同地進行重復。你有了經(jīng)驗后,你將更容易地選擇合適的控制結(jié)構(gòu)來執(zhí)行你的任務。

在本教程后續(xù)的章節(jié)中,將會有更多的使用循環(huán)的例子。例如,在下章里,你將看到如何使用數(shù)組合嵌套的循環(huán)來創(chuàng)建一個VBA過程,該過程將幫你選擇彩票號碼。在下章里,你將學習如何處理大量的數(shù)據(jù),而不會迷失在變量的海洋里。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號