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