我正在编写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”时……它会继续顺利进行且没有错误!我一遍又一遍地翻来覆去,仔细检查了每个变量的值,这毫无意义。
有想法吗?
最佳答案
我想不出什么主意:
后台仍有一些更新。在您提到的行之前尝试DoEvents
和Application.Wait
还要检查是否有任何数据连接能够在后台更新-如果可以,请禁用后台刷新
很少(通常在旧版本中以及涉及图表时)取消隐藏Excel窗口(以防使用Application.Visible = False
并启用ScreenUpdating
的情况。)
您是否使用任何“异国情调”引用/加载项?禁用它们,看看问题是否仍然存在。
尝试重新启动机器
并不是说我太乐观了,无论哪种方法都可以解决您的问题-但请尝试一下!祝你好运!