【问题标题】:Label caption don't show while macro running宏运行时标签标题不显示
【发布时间】:2018-09-30 00:25:08
【问题描述】:

我希望在运行长宏时显示“请稍候”弹出窗口。我发现最简单的方法是让用户表单在开头显示并在结尾消失。 我遇到的问题是用户表单内的标签直到子完成后才显示......

这是我的测试代码。我错过了什么?

Sub testPleaseWait()

UserForm1.Show vbModeless
Dim a As Integer
a = 0
While a < 1000
    Debug.Print a
    a = a + 1
Wend
Unload UserForm1

End Sub

用户表单仅由一个标签(称为“Label1”)组成。 我试图在用户表单的“激活”子上设置标题,但这没有帮助。

提前感谢您的回答!

亚历克斯

【问题讨论】:

  • 在循环中 a=0 时尝试重新绘制表单?
  • 尝试将您的代码放入Userform_Activate,然后从另一个子中调用您的用户表单。
  • 扩展@dwirony 的答案:在.Show 控制权到达Sub UserForm1_initialize 之后。所以有一个Sub UserForm1_initialize(),然后发出UserForm1.Label1 = "Please wait..."
  • 您的代码正在运行,但没有让系统有时间处理用户表单显示。只需在.Show 后添加DoEvents
  • @Robert Todar:在调用者模块中的无模式状态下执行不间断地继续。甚至UserForm1.Label1 = "Please wait..." 赋值也可以在.Show vbModeless 之后以模块testPleaseWait 完成,它会执行所需的行为。

标签: excel vba label userform


【解决方案1】:

感谢大家的回答。

我刚刚添加了一个

UserForm1.repaint

.Show 之后,它起作用了!

【讨论】:

    猜你喜欢
    • 2017-08-12
    • 2019-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 2013-06-04
    • 1970-01-01
    相关资源
    最近更新 更多