运行一个VBA Excelmacros,即使将Application.ScreenUpdating设置为True和False,也会导致屏幕闪烁

我写了一个相当大的macros,有几个Sub函数。 macros抽取外部数据并对其执行计算,并在图表上生成结果以及graphics。

问题在于,macros数据量较小,运行良好。 但是,当我拉一个1500条目的数据库,屏幕开始闪烁,程序挂起。 它甚至不提供任何错误消息。

如果是循环中的任何错误,程序不应该有200个条目。 但是除了很长的数据之外,它确实有很多数据。 此外,所使用的数组的大小设置为2000,并且Application.ScreenUpdating已经在开始时变为False ,在每个Sub结束为True

关于程序如何工作的另一个重要信息是:

代码连接到一个用户窗体。 所以如果一个选项button和另一个条目是正确的,一个特定的进程( Sub )正在一次发生。 所以对于每个子我已经给了Application.ScreenUpdatingFalseTrue 。 从技术上来说,15个潜艇中,也许只有5个模块在同一时间运行。 我已经把每个案例放在同一个模块中,因为这样更容易处理。 但是,一次只能运行很less的子系统。