Excel VBA进度条

时间:2015-11-15 07:56:20

标签: excel-vba progress-bar vba excel

当我的宏进入一个大循环时,我想弹出一个进度条,以便用户知道一切正常,程序只需要一些时间来完成任务。

我找到了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

1 个答案:

答案 0 :(得分:0)

这是一个示例:how progressbar works

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