运行一个VBA Excelmacros,即使将Application.ScreenUpdating设置为True和False,也会导致屏幕闪烁
我写了一个相当大的macros,有几个Sub
函数。 macros抽取外部数据并对其执行计算,并在图表上生成结果以及graphics。
问题在于,macros数据量较小,运行良好。 但是,当我拉一个1500条目的数据库,屏幕开始闪烁,程序挂起。 它甚至不提供任何错误消息。
如果是循环中的任何错误,程序不应该有200个条目。 但是除了很长的数据之外,它确实有很多数据。 此外,所使用的数组的大小设置为2000,并且Application.ScreenUpdating
已经在开始时变为False
,在每个Sub
结束为True
。
关于程序如何工作的另一个重要信息是:
代码连接到一个用户窗体。 所以如果一个选项button和另一个条目是正确的,一个特定的进程( Sub
)正在一次发生。 所以对于每个子我已经给了Application.ScreenUpdating
为False
和True
。 从技术上来说,15个潜艇中,也许只有5个模块在同一时间运行。 我已经把每个案例放在同一个模块中,因为这样更容易处理。 但是,一次只能运行很less的子系统。