有没有一种简单的方法可以同时更新单个Excel工作表上的多个透视表的数据源?
所有的透视表都引用相同的命名范围,但我需要创建第二个工作表,该工作表具有相同的透视表,但访问不同的命名范围。
理想情况下,我希望能够执行某种搜索和替换操作(就像您可以对公式执行的操作一样),而不是手动更新每个单独的透视表。
有什么建议吗?
发布于 2010-03-26 23:05:26
下面的VBA代码将更改单个工作表上所有透视表的数据源。
您需要使用新的透视表将Sheet2
参数更新为工作表的名称,并将Data2
参数更新为新的命名范围。
Sub Change_Pivot_Source()
Dim pt As PivotTable
For Each pt In ActiveWorkbook.Worksheets("Sheet2").PivotTables
pt.ChangePivotCache ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:="Data2")
Next pt
End Sub
发布于 2010-03-26 19:59:46
假设您愿意使用VBA,那么this可能是相关的。
如果您遍历了每个工作表上的PivotTable集合,您应该能够使用该文章中所示的方法来修改数据源。语法应该非常类似于使用命名区域而不是单元格区域。
发布于 2020-02-14 20:54:23
我将上面的代码组合在一起,现在使用下面的代码,您可以对源数据使用表或范围引用。您所要做的就是通过替换*
符号将源数据放入其中,您就可以开始工作了。
Sub Change_Pivot_Source()
Dim pt As PivotTable
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.ChangePivotCache ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:="*****")
Next pt
Next ws
End Sub
https://stackoverflow.com/questions/2522749
复制相似问题