数据透视表仍然指的是以前的工作簿命名范围

时间:2013-06-04 09:21:34

标签: excel vba

这是我经常遇到的一个场景 - 并围绕它解决而不是试图解决它。

我有一个带有以下工作表的控制工作簿

enter image description here

在工作簿中有一个命名范围“myData”,它是“数据”表中的数据。

VBA获取数据并将其粘贴到“数据”中,然后重命名范围,然后刷新使用命名范围作为其来源的数据透视表。然后,例程将工作表Array("Pivot", "Data", "notes")复制到一个新的工作簿中,该工作簿将保存在“NewWorkbook.xlsx”

的不同位置

现在,如果我打开NewWorkbook并查看数据源的数据源,它将引用原始控件工作簿。

是否有一种简单的方法可以确保数据透视引用新工作簿中的数据?我不应该使用命名范围吗?

2 个答案:

答案 0 :(得分:1)

您需要更新pivotcache的源数据

Sheets(Array("Data", "Pivot", "notes")).Copy
With ActiveWorkbook.Sheets("Pivot").PivotTables(1)
    .PivotCache.SourceData = "myData"
    .RefreshTable
End With
例如

答案 1 :(得分:1)

您还可以点击数据透视表选项卡,然后使用“更改源”按钮重定向其来源,然后刷新。enter image description here

希望这有帮助。