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