在 Excel VBA 中,我想按一个按钮,运行一些代码,当代码运行时,会出现一个表单窗口,显示类似“代码正在运行,请等待完成。单击停止按钮终止代码。”
但是每次我 .Show 一个表单时,代码都会停止,等待表单窗口关闭然后再继续。有没有办法强制代码在表单窗口打开时继续运行? 谢谢!
解答:在.Show末尾添加(False)或将表单的ShowModal属性更改为False。然后在 fmRunning.Show(False) 之后添加 Application.Wait (Now + TimeValue("0:00:01"))。或者插入“DoEvents”而不是 Application.Wait 谢谢大家!!
您需要将用户窗体设置为无模式。这可以通过两种方式完成:
Userform.Show vbModeless
请参阅 MSDN 了解更多信息。
仅使用
Userform.Show vbModeless
可能会导致空白表格。
您还应该使用命令 Userform.Repaint
。这将刷新表单上的信息。示例:
Userform.Show vbModeless
Userform.Caption = "Some text" 'change the Caption text
Userform.Repaint 'refresh changes
这样你应该可以看到变化
如果您所做的只是建议用户等待,那么您不需要额外的表格。只需在表单中添加一个标签,上面写着“请稍候...”。将标签设置为隐藏,直到按下按钮,然后使其在代码开始时可见,并在代码完成时再次隐藏它。您可能需要在visible = True指令之后直接插入DoEvents,因为它可能会被代码的主要部分取代。
me.label1.visible = true/false