九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
006.VBA循環(huán)語句Do While
userphoto

2022.12.21 內(nèi)蒙古

關(guān)注

大家好,我是永不止步的老牛。

上一篇我們介紹了VBA判斷語句,本篇我們介紹VBA循環(huán)語句Do…While。

當我們在VBA編碼中,在程序中需要重復執(zhí)行某些代碼時,就要用到循環(huán)語句,那些被重復執(zhí)行的代碼叫循環(huán)體,循環(huán)體加上循環(huán)的終止條件就是循環(huán)語句。

我們先看下Do...While的語法:

Do While 條件

代碼1

代碼2

代碼n

Loop

執(zhí)行這個循環(huán)語句時,首先先判斷條件,如果是False,就執(zhí)行Loop后面的代碼,就是跳出循環(huán)體,相當于循環(huán)結(jié)束;如果是True,就執(zhí)行代碼1…代碼n,當執(zhí)行到loop時,就再次回到Do While 條件處,再次判斷條件,如果是False,就執(zhí)行Loop后面的代碼,如果是是True,就執(zhí)行代碼1…代碼n,當執(zhí)行到loop時,就繼續(xù)回到Do While 條件處,繼續(xù)判斷條件……一直這樣循環(huán),直到條件等于False。

我們用例子來展示一下,下表中如果1月銷量大于100,就將數(shù)字變成粗體,代碼如下:

Sub 設置粗體()

Dim i As Integer

i = 2

Do While Range('C' & i) <> ''

If Range('C' & i).Value >= 100 Then

Range('C' & i).Font.Bold = True

End If

i = i + 1

Loop

End Sub

首先定義了變量i,并給i賦值2,執(zhí)行到Do While語句時,判斷條件,條件中的Range('C' & i)就表示單元格C2,就是判斷單元格C2的值是不是為空,如果不為空就執(zhí)行循環(huán)體代碼,循環(huán)體內(nèi)的IF語句判斷單元格C2的值,如果大于等于100,就將單元格C2的值設置成粗體,此時因為我們下來要判斷的是C3單元格,所以就要給i加1,讓下次Do While條件中的Range('C' & i) 變成了單元格C3,以此類推,直到循環(huán)到C6單元格,等于空,就跳出Do While循環(huán),執(zhí)行Loop語句后面的代碼。

還可以用Cells(行號, 列號)來表示一個單元格,上述代碼可以修改成:

Sub 設置粗體()

Dim i As Integer

i = 2

Do While Cells(i, 3) <> ''

If Cells(i, 3).Value >= 100 Then

Cells(i, 3).Font.Bold = True

End If

i = i + 1

Loop

End Sub

還可以用ActiveCell來控制,如下:

Sub 設置粗體3()

Range('C2').Select

Do While ActiveCell.Value <> ''

If ActiveCell.Value >= 100 Then

ActiveCell.Font.Bold = True

End If

ActiveCell.Offset(1, 0).Select

Loop

End Sub

語句Range('C2').Select表示選中了C2單元格,此時ActiveCell就是C2單元格,因為沒有用到變量來控制循環(huán),所以在循環(huán)體尾部,ActiveCell.Offset(1, 0).Select,就是讓單元格往下移動1格。

Do While循環(huán)就是判斷某個條件,如果是True,就執(zhí)行循環(huán)體,直到條件返回False。

上述代碼我們設置的條件是判斷單元格是否為空,和具體有多少行數(shù)據(jù)沒有關(guān)系,我們演示多復制一些數(shù)據(jù),代碼不需要變化,一樣的效果。

特別要注意的是:一定要正確設計循環(huán),避免無限循環(huán),就是俗稱的死循環(huán),ESC也無法停止該循環(huán),新手特別容易忽視循環(huán)的正確退出。

Do…While循環(huán)還有另外一種形式,語法如下:

Do

代碼1

代碼2

代碼n

Loop While 條件

先執(zhí)行代碼1…代碼n,然后判斷條件,如果條件返回False,就跳出循環(huán),如果條件返回True,就繼續(xù)執(zhí)行循環(huán)體代碼1…代碼n,然后再次判斷,直到條件返回False,跳出循環(huán)。

這種形式的循環(huán),循環(huán)體代碼1…代碼n最少被執(zhí)行一次。

如果在循環(huán)體代碼1…代碼n中,如果滿足某種情況,不想繼續(xù)執(zhí)行循環(huán),直接跳出循環(huán),可以使用語句Exit Do。

Exit Do 表示立即停止循環(huán),跳出循環(huán)執(zhí)行Loop之后的代碼。

下面的示例演示了,從C2開始,往下循環(huán),將第一個大于等于100的數(shù)字變成粗體。

為了看清楚循環(huán)體執(zhí)行了幾次,循環(huán)體的第一句就是將Range('C' & i)的值輸出到立即窗口,可以看到執(zhí)行到第5次,就是單元格C6時,因為值是110,大于100,設置成粗體,執(zhí)行Exit Do,跳出循環(huán)。

今天就介紹到這,大家最好能自己實際練習一下,下一篇文章我們介紹VBA的其他循環(huán)語句。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【VBA初學者教程】- 第一章 VBA入門知識:在單元格區(qū)域中循環(huán)
第7章 程序控制結(jié)構(gòu)
VBA基本語言結(jié)構(gòu)
精通C語言?短短20行經(jīng)典C語言代碼很多人看不明白,你來試一下吧
5.1 for循環(huán)
Python 為什么不設計 do-while 循環(huán)結(jié)構(gòu)?
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服