当我的宏进入一个大循环时,我想弹出一个进度条,以便用户知道一切正常,程序只需要一些时间来完成任务。
我找到了this教程,一步一步地进行,一切都很好(我设法实现了示例的进度条,没有任何问题)。
但是现在,当然,我想将进度条的代码更改为我的代码。当我这样做时,问题是:
a)进度条在UserForm1.Hide
之后没有消失(这不是上面的教程,我只是认为这是我要调用以取消进度条,但它不起作用);
b)当我100%手动关闭进度条时,宏需要大约10秒才能继续运行代码。
有什么建议吗?
谢谢,
Sub myCode()
'... long code here
Dim pctCompl As Single
UserForm1.Show
Dim base As Double
For base = 2 To numberOfLines
'...some code here too
pctCompl = (numberOfLines - 2) / numberOfLines
progress pctCompl
Next base
' Not working.
UserForm1.Hide
'Taking too long to open after the progress bar is closed.
Workbooks.Open Filename:="myPath...", UpdateLinks:=0, ReadOnly:=True
'Some code here too...
End Sub
Sub progress(pctCompl As Single)
UserForm1.Text.Caption = pctCompl & "% Completed"
UserForm1.Bar.Width = pctCompl * 2
DoEvents
End Sub