VB的循環(huán)嵌套

2021-12-08 14:30 更新

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

下面顯示的過程ColorLoop示范如何嵌套一個(gè)For…Next循環(huán)在另一個(gè)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使用了兩個(gè)For…Next循環(huán)來改變工作表中前面八行和七列里的每個(gè)單元格的顏色。當(dāng)外部的循環(huán)在追蹤行號的時(shí)候,內(nèi)部的循環(huán)在做更多的事情,它首先確定當(dāng)前的列號,基于當(dāng)前的行號的列號選擇適當(dāng)?shù)膯卧?,然后給所選的單元格設(shè)置顏色。


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

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

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


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號