前景提要()
在我們的印象中,不管是excel自帶的彈窗,還是我們自己通過(guò)代碼寫(xiě)出來(lái)的彈窗都是需要操作才會(huì)消失的
比方說(shuō)這樣的,你不點(diǎn)擊按鈕,這個(gè)彈窗會(huì)一直存在
而在我們自己寫(xiě)的VBA代碼中,彈窗都是附帶著返回值的,如果不做出選擇,彈窗就會(huì)一直存在,同時(shí)我們的程序也會(huì)一致卡在哪里
比方說(shuō)我們之前做的這個(gè)運(yùn)算的彈窗
但是有時(shí)候,我們僅僅是希望彈窗彈出來(lái)一下,告知我們當(dāng)前程序運(yùn)行得狀態(tài)就好,然后會(huì)自動(dòng)消失,并不需要做出任何選擇,程序也會(huì)在彈窗消失之后自動(dòng)運(yùn)行,這樣的彈窗可以實(shí)現(xiàn)嗎?
場(chǎng)景模擬
假設(shè)我們當(dāng)前的代碼正在進(jìn)行一個(gè)比較復(fù)雜的運(yùn)算,并且關(guān)閉了屏幕刷新,對(duì)于使用者來(lái)說(shuō),當(dāng)電腦屏幕上看,并不知道程序運(yùn)行到那個(gè)步驟了,如果耐心不好的,可能會(huì)因?yàn)殡娔X死機(jī)或者程序壞了,這個(gè)時(shí)候我們就需要一個(gè)彈窗告訴使用者程序已經(jīng)運(yùn)行到哪里了,并且僅僅是彈窗,并不需要使用者做任何得操作,是不是更加得人性化呢,來(lái)上代碼
代碼區(qū)
Sub msg()
Dim WshShell As Object
Set WshShell = CreateObject("Wscript.Shell")
WshShell.popup "腳本當(dāng)前正在進(jìn)行計(jì)算,請(qǐng)耐心等待!", 2, "提示", 64
Set WshShell = Nothing
MsgBox "我是第二個(gè)彈窗,你要點(diǎn)我我才會(huì)操作!"
MsgBox "我是第三個(gè)彈窗,你點(diǎn)擊了第二個(gè)我才會(huì)出現(xiàn)的!"
End Sub
來(lái)看看效果
當(dāng)腳本運(yùn)行的時(shí)候,會(huì)有這樣的一個(gè)彈窗出現(xiàn),告知使用者程序的進(jìn)度,使用者可以不做任何操作,我們?cè)O(shè)置彈窗2秒之后自動(dòng)消失
這是第二個(gè)彈窗,這個(gè)彈窗和我們之前接觸到得彈窗一樣,當(dāng)出現(xiàn)這樣得彈窗得時(shí)候,程序后臺(tái)就也暫停執(zhí)行,等待你點(diǎn)擊的返回結(jié)果,在執(zhí)行相應(yīng)的操作,如果這個(gè)時(shí)候你正好離開(kāi)座位,不好意思,這個(gè)彈窗會(huì)一致存在,程序也一直卡在這個(gè)地方
只有當(dāng)你點(diǎn)擊了確定之后,這個(gè)彈窗后面的代碼,也就是第三個(gè)彈窗才會(huì)出現(xiàn)
代碼分析
Set WshShell = CreateObject("Wscript.Shell")
WshShell.popup "腳本當(dāng)前正在進(jìn)行計(jì)算,請(qǐng)耐心等待!", 2, "提示", 64
今天的代碼關(guān)鍵點(diǎn),就在這里,這個(gè)就是實(shí)現(xiàn)窗口彈窗之后,會(huì)到時(shí)候消失的代碼,
其實(shí)代碼也沒(méi)有什么難點(diǎn),大家記下來(lái)直接套用即可
消失的時(shí)候,就是第二參數(shù),想要多少秒消失,大家可以根據(jù)自己的需要來(lái)靈活設(shè)定~~
如何你覺(jué)得我的內(nèi)容對(duì)你有幫助,那就加個(gè)關(guān)注吧~~
聯(lián)系客服