當(dāng)你的過程需要在一個集合的所有對象或者一個數(shù)組的所有元素之間循環(huán)時,應(yīng)該使用For Each…Next循環(huán),該循環(huán)不需要計數(shù)器變量,VB自己知道應(yīng)該執(zhí)行幾次循環(huán),在集合和數(shù)組中循環(huán)與其他循環(huán)語句相比,F(xiàn)or Each要靈活很多!
For Each 元素 In 集合名稱或數(shù)組名稱;集合變量定義為相應(yīng)的對象;數(shù)組原始變量定義為Variant類型
語句1
語句2
語句N
Next [元素] 元素變量用來歷遍集合或者數(shù)組中的每個元素,無論集合或者數(shù)組里有多少個元素,從第一個元素開始到最后一個,退出循環(huán)。
案例實(shí)戰(zhàn):
一個工作簿有許多工作表,就像下圖這樣:
(⊙v⊙)
有請代碼
Sub shtname()
Dim sht As Worksheet'變量類型定義為Worksheet,工作表類型
Dim i As Integer
i = 1 '第一次待寫入在單元格第1行,變量值定義為1
For Each sht In Worksheets '當(dāng)前工作簿中的工作表集合,集合里有幾個工作表對象,運(yùn)行程序后就執(zhí)行循環(huán)體幾次
Cells(i, 'A') = sht.Name '將工作表名稱寫入A列第i行單元格,sht.name返回變量Sht代表的工作表標(biāo)簽名稱
i = i 1
Next sht '返回For Each語句開始處,在執(zhí)行循環(huán)體
End Sub
查看執(zhí)行效果
執(zhí)行程序后,工作簿中的所有工作表就出現(xiàn)在當(dāng)前活動工作的A列單元格中。
如下圖所示
覺得沒有玩夠,滿足你那顆愛學(xué)習(xí)的心!
小練習(xí)
用For Each…Next語句編寫一個程序?qū)?到100的自然數(shù)輸入到A1:A100單元格區(qū)域中
愛學(xué)習(xí)的親們就是這么
參考答案:
Sub tiangshu()
Dim r As Range, i As Integer
i = 1
For Each r In Range('A1:A100')
r.Value = i
i = i 1
Next
End Sub