Excel VBA进度条

Excel VBA进度条,excel,progress-bar,vba,Excel,Progress Bar,Vba,我想在宏进入一个大循环时弹出一个进度条,这样用户就知道一切都很好,程序只是需要一些时间来完成一项任务 我找到了教程,然后一步一步,一切看起来都很好(我成功地实现了示例的进度条,没有任何问题) 当然,现在我想把进度条的代码改成我的代码。当我这样做时,问题是: a) 在UserForm1.Hide之后,进度条没有消失(这不是上面的教程,我只是想这是我必须调用的来关闭进度条,但它不起作用) b) 当我手动关闭进度条时,当它达到100%时,宏需要大约10秒才能继续运行代码 有什么建议吗 谢谢, Sub

我想在宏进入一个大循环时弹出一个进度条,这样用户就知道一切都很好,程序只是需要一些时间来完成一项任务

我找到了教程,然后一步一步,一切看起来都很好(我成功地实现了示例的进度条,没有任何问题)

当然,现在我想把进度条的代码改成我的代码。当我这样做时,问题是:

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
这是一个示例:

看看这个。尝试使用我的代码行重写您的cody。

这是一个示例:


看看这个。尝试使用“我的代码行”重写您的cody。

UserForm1.Show
更改为
UserForm1.Show false
,它允许您的表单同时编码。(否则,代码仅在关闭Userform后继续。谢谢,mate,这有助于将
UserForm1.Show
更改为
UserForm1.Show false
,它允许在表单中同时进行代码。(否则,代码仅在关闭Userform后继续。谢谢,mate,这帮助很大。)