如何显示进度条?

时间:2019-11-29 05:14:11

标签: excel vba userform

Internet上有很多关于如何制作进度条的建议。

我制作了一个带有标签和框架的用户窗体,并向按钮添加了代码:

Private Sub CommandButton1_Click()

For i = 1 To 192
    Cells(i, 1) = "a"
    Label1.Width = i
Next i

End Sub

仅在执行循环结束后刷新进度条。

如何刷新用户表单?

1 个答案:

答案 0 :(得分:2)

DoEvents将控制权传递给操作系统。操作系统完成处理其队列中的事件(如屏幕更新)后,将返回控件。如果使用进度条,这就是您需要的。

因此将DoEvents放入循环中。它将减慢速度,但是进度栏应该可以工作。

Private Sub CommandButton1_Click()
  For i = 1 To 192
    Cells(i, 1) = "a"
    Label1.Width = i
    DoEvents
  Next i
End Sub

VBA DoEvents Documentation from Microsoft