在我们的印象中,不管是excel自带的弹窗,还是我们自己通过代码写出来的弹窗都是需要操作才会消失的 比方说这样的,你不点击按钮,这个弹窗会一直存在 而在我们自己写的VBA代码中,弹窗都是附带着返回值的,如果不做出选择,弹窗就会一直存在,同时我们的程序也会一致卡在哪里 比方说我们之前做的这个运算的弹窗 但是有时候,我们仅仅是希望弹窗弹出来一下,告知我们当前程序运行得状态就好,然后会自动消失,并不需要做出任何选择,程序也会在弹窗消失之后自动运行,这样的弹窗可以实现吗? 场景模拟 假设我们当前的代码正在进行一个比较复杂的运算,并且关闭了屏幕刷新,对于使用者来说,当电脑屏幕上看,并不知道程序运行到那个步骤了,如果耐心不好的,可能会因为电脑死机或者程序坏了,这个时候我们就需要一个弹窗告诉使用者程序已经运行到哪里了,并且仅仅是弹窗,并不需要使用者做任何得操作,是不是更加得人性化呢,来上代码
Sub msg() Dim WshShell As Object Set WshShell = CreateObject("Wscript.Shell") WshShell.popup "脚本当前正在进行计算,请耐心等待!", 2, "提示", 64 Set WshShell = Nothing MsgBox "我是第二个弹窗,你要点我我才会操作!" MsgBox "我是第三个弹窗,你点击了第二个我才会出现的!" End Sub 来看看效果 当脚本运行的时候,会有这样的一个弹窗出现,告知使用者程序的进度,使用者可以不做任何操作,我们设置弹窗2秒之后自动消失 这是第二个弹窗,这个弹窗和我们之前接触到得弹窗一样,当出现这样得弹窗得时候,程序后台就也暂停执行,等待你点击的返回结果,在执行相应的操作,如果这个时候你正好离开座位,不好意思,这个弹窗会一致存在,程序也一直卡在这个地方 只有当你点击了确定之后,这个弹窗后面的代码,也就是第三个弹窗才会出现
Set WshShell = CreateObject("Wscript.Shell") WshShell.popup "脚本当前正在进行计算,请耐心等待!", 2, "提示", 64 今天的代码关键点,就在这里,这个就是实现窗口弹窗之后,会到时候消失的代码, 其实代码也没有什么难点,大家记下来直接套用即可 消失的时候,就是第二参数,想要多少秒消失,大家可以根据自己的需要来灵活设定~~ 如何你觉得我的内容对你有帮助,那就加个关注吧~~ |
|
来自: Excel和VBA > 《Excel和VBA知识》