【发布时间】:2015-04-27 20:48:23
【问题描述】:
我正在运行一个宏,它会打开一个引用我正在使用的文件的文件,将相关项目作为值粘贴到单独的工作表中,然后从该工作表中制作一个工作簿。
我这样做的原因是因为有几千个 countifs、averageifs 和处理器密集型之类的。
程序从头到尾运行,就好了。问题是在复制/粘贴操作之前只计算了少数项目,因此我在使用公式的工作表副本上得到很多#VALUE 错误——即使公式在进一步检查时计算正确。
我怀疑正确的做法是延迟运行直到工作表完成计算。任何和所有的帮助将不胜感激。
编辑:我尝试了各种方式的 application.calculations,但似乎没有任何效果。如果我手动打开并让处理器执行其操作,则链接和项目会正常计算。唯一计算的项目是其中某处包含“COUNTA”的项目。会不会是应用计算方法不适用于Countifs之类的?
【问题讨论】:
-
作为一个快速测试,您是否尝试过在宏开始时关闭电子表格自动计算,并在结束时将其打开(或在关闭源数据之前将其关闭)?
Application.Calculation = xlCalculateManual。另外,尝试关闭屏幕更新 - 这可能会有所帮助。Application.ScreenUpdating = False -
你能发布你的代码,这样我们就可以确切地看到发生了什么。 @user3578951 的建议可能是正确的答案,但可能需要根据您的具体操作方式进行微调。
-
@user3578951 - 当我解释这个问题时...OP 已经在工作表完成计算之前指示了代码副本,关闭计算将如何解决问题?