Application.StatusBar在VBA中冻结

最近我一直在编写需要大量时间执行的macros。 (5分钟以上,但有些明显更长)。 我发现在这种情况下有用的事情之一(除了等待)是让Application.StatusBar告诉我它是移动还是挂起。

但是,很多时候,Application.Statusbar在程序前进时被冻结在某个值上。 这怎么解决? 无论如何,我们可以防止这种情况,只要程序正在移动状态栏一直在移动? 提前致谢。

我发现冻结发生在我的代码,当我在循环中有很多项目。 我通过使用下面的代码解决了这个问题:

For RowNum = 1 To TotalRows For ColNum = 1 To TotalCols 'code If ColNum = 1 Then If RowNum Mod 50 = 0 And ColNum = 1 Then Application.StatusBar = Format(RowNum / TotalRows, "0%")& " Completed." End If Else: Exit For End If Next ColNum Next RowNum 

循环每50行更新一次状态栏。 这有助于代码运行得更快,消除了屏幕冻结