【问题标题】:Show built-in progress bar when application.screenupdate = false?当 application.screenupdate = false 时显示内置进度条?
【发布时间】:2011-03-02 21:43:26
【问题描述】:

我只是想知道在我使用此设置时是否仍然可以显示内置进度条:

Application.ScreenUpdating = False

我知道我可以使用 UserForm 制作自己的进度条,但我更喜欢使用内置的

Application.StatusBar

显示我编写的消息和显示文件打开进度的内置进度条,就像启用 ScreenUpdating 时 Excel 会显示一样。

这可能吗?我应该编写自己的进度条吗?这更像是一个性能问题,如果它能让我的程序在 1 分 35 秒而不是 1 分 30 秒内完成,我宁愿不这样做。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    不,这是不可能的。仔细想想 - 你告诉 Excel 不要更新用户界面,所以很明显你不能更新用户界面。如果要显示进度,则必须允许 Excel 更新 U/I 或创建自己的进度条。

    当然,最快的方法是不用费心去显示进度。如果性能如此重要以至于 1 分 30 秒和 1 分 35 秒之间的差异很重要,请不要显示进度信息,而是在 1 分 29 秒或更短的时间内完成。

    【讨论】:

    • 问题是无论 ScreenUpdating 设置如何,Application.StatusBar 仍然会更新,所以我认为也许有办法让进度条也可以工作:)
    • 其实我忘记了每次状态栏更新后都需要DoEvents命令,所以你是对的,我很愚蠢。谢谢!! :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    相关资源
    最近更新 更多