Excel 中使用 VBA 控制多个透视表(pivot table)的实现
困绕很久的一个问题终于解决了。需求是在 Excel 中有很多个透视表,每个透视表的数据源是相同的,我希望让这些透视表的某个过滤条件一起联动。
比如我有三个透视表,我希望让三个表的Month选项都改成“2014-12”。查来查去发现只能用VBA实现了。
具体代码如下:
Public Sub FilterPivotTable() Dim ORG ORG = ActiveSheet.PivotTables("数据透视表6").PivotFields("[BRANCH_DBVIN].[ORGNAME].[ORGNAME]").CurrentPageName With ActiveSheet.PivotTables("数据透视表12").PivotFields("[BRANCH_DBVIN].[ORGNAME].[ORGNAME]") .CurrentPageName = ORG End With End Sub
这里面“透视表6”是源数据,变量ORG存储了要变化的结果。“透视表12”是目标透视表。
如果不知道Field的名字,参考下面代码
1 2 3 | For each pField in ActiveSheet.PivotTables( "PivotTable1" ).PivotFields Debug.Print pField.Name Next pField |
Go to VBA Editor, press Ctrl+G, it will open the immediate window. It will show all the available pivot fields.Then please use the correct Pivot Field and try.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用