3

我正在编写 VBA 代码来自动化 Excel 中的一些流程,但我遇到了一个非常奇怪的行为,我无法找到文档/帮助。

我有一个程序MAJ_GF,它首先执行 function 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 按预期在该线上暂停,当我说“继续”时......它只是顺利地继续,没有错误!

我把它转来转去,仔细检查了每个变量的值,这没有任何意义。

任何人的想法?

4

1 回答 1

4

我的脑海里浮现出几个想法:

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

并不是说我太乐观地认为两者都可以解决您的问题-但试一试!祝你好运!

于 2013-02-18T19:40:02.227 回答