excel - 循环遍历所有数据透视表的所有数据透视字段值
问题描述
我有一个 excel 工作簿,在一张名为“RAW”的工作表中,我有一张这样的表格:
年份 | 产品组 | 项目 | 网站 | 类别 | 一月 | 二月 | 三月
该表每个月都会更改,因此下个月我将获得 2 月 3 月 4 月(等等)的数据。
在工作簿的其他工作表中,我有一些数据透视表,它们都链接到工作表“RAW”的表。我想要做的是,一旦 RAW 数据发生变化,执行一个宏,允许我自动更新所有数据透视表并选择三个月作为每个数据透视表的值(数据透视字段?)。
我有以下代码:
Sub Update_PT()
Dim TD As PivotTable
Dim Hoja As Worksheet
month1 = Sheets("Raw").Range("F1").Value
month2 = Sheets("Raw").Range("G1").Value
month3 = Sheets("Raw").Range("H1").Value
For Each Hoja In ThisWorkbook.Sheets
For Each TD In Hoja.PivotTables
TD.PivotCache.Refresh
Next TD
Next Hoja
End Sub
我缺少的是遍历所有数据透视表并将数据透视字段(或值)设置为我的变量月 1、月 2 和月 3。
任何人都可以帮助我吗?
非常感谢。此致。
解决方案
我试过这个:
Sub Actualizar_Tablas()
Dim TD As PivotTable Dim Hoja As Worksheet
month1 = Sheets("Raw").Range("G1").Value month2 =
Sheets("Raw").Range("H1").Value month3 =
Sheets("Raw").Range("I1").Value
For Each Hoja In ThisWorkbook.Sheets
For Each TD In Hoja.PivotTables
TD.PivotCache.Refresh
TD.AddDataField _
Field:=TD.PivotFields(month1), _
Function:=xlSum
TD.AddDataField _
Field:=TD.PivotFields(month2), _
Function:=xlSum
TD.AddDataField _
Field:=TD.PivotFields(month3), _
Function:=xlSum
Next TD Next Hoja
End Sub
但我有以下问题:
- 值的名称是“Sum of & month1”,我希望它们只是第 1 个月。我正在尝试使用 Caption 更改它,但我无法做到。
- 如果我第二次运行宏,我会得到 3 个新值作为“和月 1 和 2 的总和”,我只想要一次值。
推荐阅读
- here-api - 交通流量数据的文档化/文档化
- php - PHP-ERROR:列数与第 1 行的值数不匹配
- postgresql - 如何强制 PostgreSQL 使用某个索引?
- c# - 如何在 C# 中检查回复状态 - Telegram Bot
- c# - 如何使用 C# 从 Dropbox 流式传输 Excel 文件?
- apache-spark - Spark Scheduler 在 K8s 环境中是如何工作的?
- python - 有没有办法批量配置文件(ViewID)更新查询?
- jquery - 在自定义嵌套选项卡中定位子选项卡
- couchdb - 使用 couchdb 以编程方式创建文档
- android - 轻推分页回收器视图以提示下一页而不切换