我正在编写VBA代码以自动执行Excel中的某些过程,并且遇到了一个非常奇怪的行为,而我无法为其找到文档/帮助。

我有一个过程MAJ_GF,该过程首先执行功能GF.Update,检查结果,然后启动过程GF.Build(该过程基本上采用GF.Update从不同工作表中获取的数据,并进行大量处理)。

在某些时候,此“一堆东西”需要使用数据透视表,因此GF.Build包含以下行:

Set pvt = ThisWorkbook.PivotCaches.Create(xlDatabase, _
   "'source_GF'!R1C1:R" & j & "C" & k).CreatePivotTable("'TCD_GF'!R4C1", "GFTCD1")


奇怪的行为是这样的:


当我运行MAJ_GF时,VBA会正确执行GF.Update,然后启动GF.Build,并停在上述行,抱怨“错误的参数或过程调用”
当我手动运行GF.Update,然后手动运行GF.Build时,一切进行得很顺利,并且GF.Build从头到尾做了所有必要的操作,没有错误
甚至更陌生,当我在出现问题的行上设置断点时,运行MAJ_GF,然后VBA会按预期的那样在行上暂停,当我说“ Continue”时……它会继续顺利进行且没有错误!


我一遍又一遍地翻来覆去,仔细检查了每个变量的值,这毫无意义。

有想法吗?

最佳答案

我想不出什么主意:


后台仍有一些更新。在您提到的行之前尝试DoEventsApplication.Wait
还要检查是否有任何数据连接能够在后台更新-如果可以,请禁用后台刷新
很少(通常在旧版本中以及涉及图表时)取消隐藏Excel窗口(以防使用Application.Visible = False并启用ScreenUpdating的情况。)
您是否使用任何“异国情调”引用/加载项?禁用它们,看看问题是否仍然存在。
尝试重新启动机器


并不是说我太乐观了,无论哪种方法都可以解决您的问题-但请尝试一下!祝你好运!

10-05 21:23