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

时间:2013-02-18 19:09:25

标签: excel vba excel-vba

我正在编写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,并在上述行停止投诉&#34;错误的参数或程序调用&#34; < / LI>
  • 当我手动运行GF.Update,然后手动运行GF.Build时,一切顺利,GF.Build完成从开始到结束所做的事情,没有错误
  • 更奇怪的是,当我在有罪的线路上设置一个断点时,运行MAJ_GF然后VBA按预期停在线路上,当我说&#34;继续&#34; ...它只是继续顺利,没有错误!

我转过身来,绕过它,仔细检查每个变量的值,这没有任何意义。

任何人的想法?

1 个答案:

答案 0 :(得分:4)

很少有想法出现在我的脑海中:

  1. 后台还有一些更新。在您提及的行
  2. 之前尝试DoEventsApplication.Wait
  3. 同时检查是否有任何数据连接能够在后台更新 - 如果是,则禁用后台刷新
  4. 很少(通常在旧版本和涉及图表时),取消隐藏Excel窗口(如果您使用Application.Visible = False并启用ScreenUpdating帮助..
  5. 您使用的是“异国情调”的引用/加载项吗?禁用它们并查看问题是否仍然存在。
  6. 尝试重新启动计算机
  7. 不是说我太乐观了,要么会解决你的问题 - 但试一试!祝你好运!