【问题标题】:VBA refresh formVBA 刷新表单
【发布时间】:2020-10-15 21:18:44
【问题描述】:

我有一个简单的进度条。我想在循环中进行迭代时填充它,但我只看到我的表单具有 0 和 100 进度值,所以它在循环期间不会刷新。如何实现运行时刷新?谢谢!

Sub test()
UserForm1.Show (False)
DoEvents

For i = 1 To 700
    For j = 1 To 5000
        UserForm1.Label1.Caption = 100 * i / 700 & "% Completed"
        UserForm1.Bar.Width = 200 * i / 700 '200 - width of the bar
    Next j
Next i

End Sub

【问题讨论】:

  • 在循环中尝试 DoEvents。闲暇时看看这里UserForm.Show
  • 您的DoEvents 必须在循环内,而不是在循环之前。

标签: vba forms refresh progress


【解决方案1】:

您只是将DoEvents 放在了错误的位置。像这样试试。

Sub test()
UserForm1.Show vbModeless

For i = 1 To 700
    For j = 1 To 5000
        UserForm1.Label1.Caption = 100 * i / 700 & "% Completed"
        UserForm1.Bar.Width = 200 * i / 700 '200 - width of the bar
        DoEvents
    Next
Next

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 2018-04-02
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    相关资源
    最近更新 更多