久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

7 在VBA中重復(fù)操作 VB的Do…While循環(huán)語(yǔ)句

 滿(mǎn)泉ca85upjdlw 2018-03-31

VB有兩種Do循環(huán)語(yǔ)句,只要或者直到某個(gè)條件為真,,它們就會(huì)重復(fù)一系列的語(yǔ)句,。只要條件為真,Do…While循環(huán)就允許你重復(fù)某個(gè)操作,。這個(gè)循環(huán)的語(yǔ)法如下:

Do While 條件語(yǔ)句1語(yǔ)句2語(yǔ)句N(xiāo)Loop

當(dāng)VB遇到這個(gè)循環(huán)時(shí),,它首先條件的真假,,如果條件為假,循環(huán)內(nèi)部的語(yǔ)句就不會(huì)被執(zhí)行,,VB將繼續(xù)執(zhí)行關(guān)鍵字Loop后面的第一條語(yǔ)句,。如果條件為真,循環(huán)里面的語(yǔ)句則會(huì)被一條一條地執(zhí)行,,直到遇到Loop語(yǔ)句,。Loop語(yǔ)句告訴VB重復(fù)這個(gè)過(guò)程,只要Do While語(yǔ)句里的條件為真的話(huà),。

7 在VBA中重復(fù)操作 VB的Do…While循環(huán)語(yǔ)句

0

現(xiàn)在,,我們來(lái)看看如何在Excel里面好好利用Do…While循環(huán)語(yǔ)句。在前面的章節(jié)里,,你學(xué)習(xí)了如何根據(jù)一個(gè)單元格的內(nèi)容來(lái)作決定,。讓我們?cè)龠M(jìn)一步,看看如何在一系列單元格上作同樣的決定,。該決定是給一列中的非空單元格設(shè)置粗體格式,。

1.打開(kāi)一個(gè)空工作簿,并且命名為Chap06.xls

2.切換到VB編輯屏幕,,并且將新工程改名為Repetition (Chap06.xls)

3.在工程Repetition里插入一新模塊,,并重命名為DoLoops

4. 輸入如下過(guò)程:

Sub ApplyBold()Do While ActiveCell.Value <>''ActiveCell.Font.Bold = TrueActiveCell.Offset(1, 0).SelectLoopEnd Sub

5. 在單元格A1:A7里輸入任意數(shù)據(jù)(文本或數(shù)字)

6. 選擇單元格A1

7. 選擇“工具”-“宏”-“運(yùn)行宏”。在宏對(duì)話(huà)框里,,雙擊過(guò)程ApplyBold(或者選中該過(guò)程然后點(diǎn)擊運(yùn)行)

當(dāng)運(yùn)行過(guò)程ApplyBold時(shí),,VB首先評(píng)估Do While語(yǔ)句里的條件——ActiveCell.Value<>””,該條件意思是:只要當(dāng)前單元格的值不是一個(gè)空字符串(””),,就執(zhí)行下列語(yǔ)句,。因?yàn)槟阋呀?jīng)在單元格A1里輸入了數(shù)據(jù)并且激活了該單元格(見(jiàn)第六步),第一個(gè)測(cè)試返回真,,所以VB執(zhí)行語(yǔ)句ActiveCell.Font.Bold = True,,它的意思是給當(dāng)前單元格設(shè)置粗體格式。接下來(lái),,VB選擇了下一行的單元格(參見(jiàn)第二章里的Offset屬性),。因?yàn)樵撜Z(yǔ)句之后就是關(guān)鍵字Loop,VB返回到Do While語(yǔ)句,,并且再次檢查條件。如果新選中的單元格(當(dāng)前激活的單元格)不為空,,那么VB就會(huì)重復(fù)循環(huán)內(nèi)部的語(yǔ)句,。該過(guò)程會(huì)繼續(xù),直到檢查到單元格A8的內(nèi)容為空,,測(cè)試條件的結(jié)果為假,,因此,,VB就跳過(guò)循環(huán)內(nèi)部的語(yǔ)句。并且在關(guān)鍵字Loop后面沒(méi)有其它的語(yǔ)句了,,所以該過(guò)程就結(jié)束了,。

7 在VBA中重復(fù)操作 VB的Do…While循環(huán)語(yǔ)句

1

我們來(lái)看看另外一個(gè)Do…While循環(huán)的例子。是不是很想知道如何在Excel的狀態(tài)欄里顯示今天的日期和時(shí)間,?這里有個(gè)例子,,如何讓它顯示十秒鐘:

Sub TenSeconds()Dim stopmestopme = Now + TimeValue('00:00:10')Do While Now < stopmeapplication.displaystatusbar="TrueApplication.StatusBar" =="" nowloopapplication.statusbar="FalseEnd">

在上面的程序里,只要函數(shù)Now返回的時(shí)間小于變量stopme的值,,Do…While循環(huán)里的語(yǔ)句就會(huì)被執(zhí)行,。變量stopme儲(chǔ)存值為當(dāng)前時(shí)間加上十秒(參見(jiàn)在線(xiàn)幫助里的另外一個(gè)使用內(nèi)置函數(shù)TimeValue的例子)。

語(yǔ)句Application.DisplayStatusBar告訴VB打開(kāi)狀態(tài)欄的顯示,,下條語(yǔ)句則是將當(dāng)前日期和時(shí)間放在狀態(tài)欄上,。當(dāng)顯示時(shí)間時(shí)(只顯示10秒)用戶(hù)無(wú)法使用系統(tǒng)(光標(biāo)變成了沙漏)。十秒鐘后(也就是,,當(dāng)條件Now <>

技巧:什么是循環(huán),?

循環(huán)是一種導(dǎo)致一部分程序代碼重復(fù)執(zhí)行的編程結(jié)構(gòu)。VBA提供了多種結(jié)構(gòu)在你的過(guò)程里執(zhí)行循環(huán):

Do…While, Do…Until, For…Next, For…Each, and While…Wend

Do…While循環(huán)還有另外一種語(yǔ)法,,你可以在循環(huán)的底部測(cè)試條件,,例如:

Do語(yǔ)句1語(yǔ)句2語(yǔ)句N(xiāo)Loop While 條件

當(dāng)你在循環(huán)的底部測(cè)試條件時(shí),意味著循環(huán)里面的語(yǔ)句至少運(yùn)行了一次,??匆幌逻@個(gè)例子:

Sub SignIn()Dim secretCode As StringDo secretCode = InputBox('Enter your secret code:')If secretCode = 'sp1045' Then Exit DoLoop While secretCode <> 'sp1045'End Sub

注意,在條件被測(cè)試之時(shí),,VB至少已經(jīng)執(zhí)行了一次循環(huán)里的語(yǔ)句,。除了將條件放在循環(huán)之后外,過(guò)程SignIn示范如何使用條件跳出循環(huán),。當(dāng)Exit Do語(yǔ)句執(zhí)行時(shí),,循環(huán)便立即停止。

技巧:避免無(wú)限循環(huán)

如果你沒(méi)有正確地設(shè)計(jì)你的循環(huán),,你將導(dǎo)致一無(wú)限循環(huán)——永無(wú)休止的循環(huán),。你將無(wú)法使用Esc鍵來(lái)停止該循環(huán)。在下面的過(guò)程里,,因?yàn)橛脩?hù)忘了放置測(cè)試條件而導(dǎo)致了永無(wú)休止的循環(huán):

Sub SayHello()DoMsgBox 'Hello.'LoopEnd Sub

你必須按下Ctrl+Break鍵(現(xiàn)在,,有些電腦使用別的組合鍵來(lái)中斷程序。例如手提電腦有的就是Fn+Break)才能終止該無(wú)限循環(huán),,當(dāng)VB顯示信息“代碼執(zhí)行被中斷”時(shí),,點(diǎn)擊結(jié)束以退出過(guò)程。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀(guān)點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多