【发布时间】:2017-06-16 17:52:51
【问题描述】:
我有一个带有 3 个选项卡的 Excel 工作簿。
第二个选项卡 (Sheet2) 包含来自 Oracle DB 的数据。
我在 Sheet3 中使用来自 Sheet2 的数据创建了一个数据透视表。
我希望数据透视表在数据更改时自动更新。
代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("Sheet3").PivotTables("PivotTable4").PivotCache.Refresh
End Sub
PivotTable4 是数据透视表的名称。
几分钟后我得到了错误:
运行时错误“9”:下标超出范围。
【问题讨论】:
-
这是您正在运行的唯一宏代码,还是还有更多?是成功运行几分钟后报错,还是单次运行几分钟失败?
-
我注意到当我为 2 个不同的 excel 运行 2 个宏代码时出现此错误。
-
当我删除一个宏代码时,另一个宏工作。
-
听起来像
Sheet3和/或PivotTable4只存在于您的一个工作簿中,并且您的代码试图在它们不存在的上下文中使用这些名称。尝试在对PivotCache.Refresh的调用中指定工作簿。或者,该问题与您发布的代码无关,而是由另一个工作簿中的另一个宏引起的。 -
这 2 个工作簿来自 power point 的 2 个不同图表。如何在代码中指定工作簿?