CreatePivotTable()上奇怪/不稳定的行为

我正在编写VBA代码来在Excel中自动执行一些进程,而且遇到了一个非常奇怪的行为,我一直无法find文档/帮助。

我有一个程序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 ,然后停在上面描述的那一行,抱怨“Bad argument or procedure call”
  • 当我手动运行GF.Update ,然后手动运行GF.Build ,一切顺利, GF.Build做了它必须做的事情从头到尾没有错误
  • 甚至更奇怪的是,当我在犯罪行上设置一个断点时,运行MAJ_GF然后VBA按照预期暂停,当我说“继续”时…它只是顺利地继续,没有错误!

我把它转过来,仔细检查每个variables的值,这是没有意义的。

任何人的想法?

我的想法很less有想法:

  1. 后台还在进行一些更新。 尝试DoEventsApplication.Wait之前你提到的行
  2. 另外检查,如果任何数据连接能够在后台更新 – 如果是这样,禁用后台刷新
  3. 很less(通常在旧版本和涉及图表时),取消隐藏Excel窗口(如果您使用Application.Visible = False并启用ScreenUpdating帮助..
  4. 你是否使用任何“异国情调”的引用/加载项? 禁用它们,看看问题是否存在。
  5. 尝试重新启动您的机器

不是我太乐观,要么解决你的问题 – 但试试吧! 祝你好运!