这是我经常遇到的一个场景 - 并围绕它解决而不是试图解决它。
我有一个带有以下工作表的控制工作簿
在工作簿中有一个命名范围“myData”,它是“数据”表中的数据。
VBA
获取数据并将其粘贴到“数据”中,然后重命名范围,然后刷新使用命名范围作为其来源的数据透视表。然后,例程将工作表Array("Pivot", "Data", "notes")
复制到一个新的工作簿中,该工作簿将保存在“NewWorkbook.xlsx”
现在,如果我打开NewWorkbook并查看数据源的数据源,它将引用原始控件工作簿。
是否有一种简单的方法可以确保数据透视引用新工作簿中的数据?我不应该使用命名范围吗?
答案 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
希望这有帮助。