【发布时间】:2023-03-02 22:03:02
【问题描述】:
在 Excel VBA 中,我想按下一个按钮,运行一些代码,当代码运行时,会出现一个表单窗口,上面写着“代码正在运行,请等到完成。单击停止按钮以终止代码。”
但每次我 .Show 一个表单时,代码都会停止,等待表单窗口关闭后再继续。有没有办法在窗体窗口打开时强制代码继续运行? 谢谢!
已回答:在 .Show 末尾添加 (False) 或将表单的 ShowModal 属性更改为 False。然后在 fmRunning.Show(False) 之后添加 Application.Wait (Now + TimeValue("0:00:01"))。或插入“DoEvents”而不是 Application.Wait 谢谢大家!!
【问题讨论】:
-
显示表单而不使其成为模态
UserForm1.Show(False) -
感谢您的建议,但是当我这样做时,表单显示为空白且无响应。我还有什么需要做的吗?
-
在调用用户表单后尝试输入
DoEvents。 -
该死的@Scott 很快。 :)
-
我添加了 DoEvents,我遇到了同样的问题,除了现在窗口不像以前那样在代码末尾关闭,但至少在代码完成后,表单会填充文本 ( #trolledByCode)。这是我的方法: Sub codename() DoEvents fmRunning.Show(False) '我也尝试过不使用 false 和 ' 而不是使用 vbModeless 和另一次将其属性设置为 0. ... ... fmRunning.Close结束子