我有一些大文件需要打开(但我不需要编写循环(否则,我肯定会选择DoEvents))。这些文件包含许多数据和计算,可能还有许多要更新的链接(如果我手动打开它们,我可以等待一段时间)。那么我是否应该在每次打开一个大文件时添加DoEvents,如下所示:
Sub Test()
...
Dim wb As Workbook
Set wb = Workbooks("Large Workbook.xlsm", 3)
DoEvents
Dim wb2 As Workbook
Set wb2 = Workbooks("Large Workbook2.xlsm", 3)
DoEvents
....
End Sub发布于 2017-08-04 03:08:34
这取决于你想要实现的目标。我通常只在处理器密集型循环中添加DoEvents,这样,如果我需要中断代码,我可以。它在很大程度上有利于防止Excel崩溃,或防止“无响应”屏幕。
也就是说,Excel有自己打开大文件的方式。如果它确实是一个大文件,那么很可能你已经看到了一个下载百分比。这是Excel加载和设置文件。
一般来说,如果你得到了一个白色的屏幕,或者Excel总是崩溃,并且你想从你的应用程序中获得一些控制权,那么添加一个DoEvents命令。否则,就让你的代码做它需要做的事情。
https://stackoverflow.com/questions/45492573
复制相似问题