如何显示进度条?

How to display a progress bar?

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

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

Private Sub CommandButton1_Click()

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

End Sub

进度条只有在循环执行结束后才会刷新

如何刷新用户表单?

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