2011-03-02 142 views
0

我只是想知道如果有可能仍显示内置的进度条,当我使用此设置:当application.screenupdate = false时显示内置的进度条?

Application.ScreenUpdating = False 

我知道我可以通过使用用户窗体使自己的进度条,而是我宁愿用内置

Application.StatusBar 

,以显示我编程的消息和内置的进度条来显示文件打开的进步,就像如果ScreenUpdating启用的Excel会显示。

这可能吗?我应该编程自己的进度条吗?这更多的是一个性能问题,如果它能使我的程序以1m35s完成,而不是1m30s,我宁愿不这样做。

回答

0

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

当然,最快的方法并不是要显示进度。如果表现非常重要,以至于1分30秒和1分35秒之间的差异很重要,请不要显示进度信息并在1分29秒或更短时间内完成。

+0

事情是,无论ScreenUpdating设置如何,Application.StatusBar仍然得到更新,所以我认为也许有一种方法可以使进度条工作:) – fomoz 2011-03-02 22:29:40

+0

其实我忘了每个StatusBar后都需要DoEvents命令更新,所以你是对的,我很愚蠢。谢谢!! :d – fomoz 2011-03-02 22:37:16