首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Excel中更新多个数据透视表上的数据源

在Excel中更新多个数据透视表上的数据源
EN

Stack Overflow用户
提问于 2010-03-26 19:13:27
回答 4查看 60.7K关注 0票数 5

有没有一种简单的方法可以同时更新单个Excel工作表上的多个透视表的数据源?

所有的透视表都引用相同的命名范围,但我需要创建第二个工作表,该工作表具有相同的透视表,但访问不同的命名范围。

理想情况下,我希望能够执行某种搜索和替换操作(就像您可以对公式执行的操作一样),而不是手动更新每个单独的透视表。

有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-26 23:05:26

下面的VBA代码将更改单个工作表上所有透视表的数据源。

您需要使用新的透视表将Sheet2参数更新为工作表的名称,并将Data2参数更新为新的命名范围。

代码语言:javascript
运行
复制
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
票数 12
EN

Stack Overflow用户

发布于 2010-03-26 19:59:46

假设您愿意使用VBA,那么this可能是相关的。

如果您遍历了每个工作表上的PivotTable集合,您应该能够使用该文章中所示的方法来修改数据源。语法应该非常类似于使用命名区域而不是单元格区域。

票数 1
EN

Stack Overflow用户

发布于 2020-02-14 20:54:23

我将上面的代码组合在一起,现在使用下面的代码,您可以对源数据使用表或范围引用。您所要做的就是通过替换*符号将源数据放入其中,您就可以开始工作了。

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2522749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档