寵物展會2025年時間表
1168
2025-04-04
Excel中怎么做vba循環(huán)
為方便操控Excel對象,VBA提供了For Each-Next結(jié)構(gòu),可以在對象組成的集合中循環(huán),給集合中的所有對象執(zhí)行操作,或者集合中滿足相關(guān)條件的對象執(zhí)行操作。
For Each-Next結(jié)構(gòu)的語法如下:
For Each 對象變量In 對象集合
[語句塊]
[Exit For]
[語句塊]
Next [對象變量]
說明:
按照慣例,方括號中的內(nèi)容表示可選項(xiàng)。
Exit For語句表示提前退出循環(huán)。
無需知道集合中的對象數(shù)目。
可以與其它語法結(jié)構(gòu)相互嵌套。
下面通過示例來演示For Each-Next結(jié)構(gòu)的使用。
示例1:下面的代碼遍歷當(dāng)前工作簿中的工作表并依次顯示工作表的名字。
Sub ForEach1()
‘遍歷工作表集合并依次顯示工作表的名字
For Each wks In Worksheets
MsgBox “工作表的名字是:”& wks.Name
Next wks
End Sub
示例2:通過改進(jìn)上面的示例1,在顯示工作表名字時表明是第幾個工作表,最后統(tǒng)計(jì)出工作簿中的工作表數(shù),代碼如下。
Sub ForEach2()
i = 0 ‘給變量賦初始值
For Each wks In Worksheets
i = i + 1
MsgBox “第” &i & “個工作表的名字是:” & wks.Name
Next wks
MsgBox “本工作簿共有” & i& “個工作表.”
End Sub
示例3:下面的代碼遍歷當(dāng)前工作表的單元格區(qū)域A1:A5,并依次顯示每個單元格中的內(nèi)容。
Sub ForEach3()
‘遍歷單元格區(qū)域A1:A5并依次顯示單元格內(nèi)容
For Each cell In Range(“A1:A5”)
MsgBox cell.Value
Next cell
End Sub
示例4:下面的代碼與示例3的效果相同,但我們設(shè)置了代表單元格區(qū)域的對象變量并賦值,讓For Each結(jié)構(gòu)在對象變量代表的區(qū)域內(nèi)循環(huán)遍歷。
Sub ForEach4()
‘設(shè)置rng變量的值
Set rng = Range(“A1:A5”)
‘遍歷rng對象變量代表的單元格區(qū)域并依次顯示單元格內(nèi)容
For Each cell In rng
MsgBox cell.Value
Next cell
End Sub
示例5:下面的代碼結(jié)合If-Then結(jié)構(gòu)判斷滿足相應(yīng)條件的單元格數(shù)。
如下圖所示,要統(tǒng)計(jì)成績大于80分的學(xué)生人數(shù)。
運(yùn)行下面的代碼即可。
Sub ForEach5()
‘設(shè)置rng變量的值
Set rng = Range(“B2:B9”)
i = 0
‘遍歷rng對象變量代表的單元格區(qū)域
‘并判斷單元格中的值是否大于80
For Each cell In rng
If cell.Value > 80 Then
i = i + 1
End If
Next cell
MsgBox “共有” & i& “名學(xué)生超過80分.”
End Sub
代碼在For Each循環(huán)結(jié)構(gòu)中使用If-Then語句來檢查每個單元格中的值,如果其值大于80,變量i就增加1。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。