如何在窗体窗口打开时保持 VBA 中的代码运行?

问题描述 投票:0回答:4

在 Excel VBA 中,我想按一个按钮,运行一些代码,当代码运行时,会出现一个表单窗口,显示类似“代码正在运行,请等待完成。单击停止按钮终止代码。”

但是每次我 .Show 一个表单时,代码都会停止,等待表单窗口关闭然后再继续。有没有办法强制代码在表单窗口打开时继续运行? 谢谢!

解答:在.Show末尾添加(False)或将表单的ShowModal属性更改为False。然后在 fmRunning.Show(False) 之后添加 Application.Wait (Now + TimeValue("0:00:01"))。或者插入“DoEvents”而不是 Application.Wait 谢谢大家!!

excel forms vba button
4个回答
8
投票

您需要将用户窗体设置为无模式。这可以通过两种方式完成:

  • 选择用户窗体并将 ShowModal 属性更改为 False
  • 或者通过打开用户窗体并将模态属性设置为 0 (vbModeless)
Userform.Show vbModeless

请参阅 MSDN 了解更多信息。


1
投票

仅使用

Userform.Show vbModeless
可能会导致空白表格。 您还应该使用命令
Userform.Repaint
。这将刷新表单上的信息。示例:

Userform.Show vbModeless
Userform.Caption = "Some text"   'change the Caption text
Userform.Repaint   'refresh changes

这样你应该可以看到变化


0
投票
  1. 在“项目”面板中选择表单。
  2. ShowModal 更改为 false

即使打开表单,这也将使您的代码保持运行


0
投票

如果您所做的只是建议用户等待,那么您不需要额外的表格。只需在表单中添加一个标签,上面写着“请稍候...”。将标签设置为隐藏,直到按下按钮,然后使其在代码开始时可见,并在代码完成时再次隐藏它。您可能需要在visible = True指令之后直接插入DoEvents,因为它可能会被代码的主要部分取代。

me.label1.visible = true/false

© www.soinside.com 2019 - 2024. All rights reserved.