自动更新数据透视表数据源

时间:2014-06-20 17:37:14

标签: excel vba excel-2010

使用ole'搜索stackoverflow提供的,我找到了以下代码

Sub Change_Pivot_Source()

Dim pt As PivotTable

For Each pt In ActiveWorkbook.Worksheets("Funnel Data Pivots").PivotTables
    pt.ChangePivotCache ActiveWorkbook.PivotCaches.Create _
    (SourceType:=xlDatabase, SourceData:="Lead Data (Q1-Q2)")
Next pt

End Sub

其中"漏斗数据Pivots"是我的woorksheet包含我想要更新的所有数据透视图,以及"领先数据(Q1-Q2)"是我所有枢轴的数据源....每周数据源都被扩展(我们在底部输入数据行,保持其余的数据不变)......但这段代码无法渲染,说"参考无效" (在主要数据(Q1-Q2)行...我假设我是typod,所以我将工作表(和VBA中)的名称更改为更简单的文本......但它仍然失败。

所以

A)这是我想用来扩展数据透视表数据源的正确代码吗?

B)如果是,我如何调试它,如果它不是正确的代码,那是什么?

这是我原来的VBA功能,它更新了数据透视表,但没有更新数据源

Sub AllWorksheetPivots1()

Dim pt As PivotTable

For Each pt In ActiveSheet.PivotTables

    pt.RefreshTable

Next pt


End Sub

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

SourceData参数需要每个帮助一个Range对象,但看起来您正在为它提供一个工作表名称。我的经验是它实际上想要一个表示范围的字符串。所以你应该使用像

这样的东西
SourceData:="Lead Data (Q1-Q2)!A1:D100"

但更好的是,如果你将数据作为一个表并基于你的数据表。然后,当您添加新行时,您的数据透视表将自动展开。