【发布时间】:2017-06-10 22:42:47
【问题描述】:
我使用 Excel 数据透视表创建了一个“摘要”选项卡。
数据透视表显示存储在“详细信息”选项卡中的各种类别中选定值的总和。
详细信息选项卡包含...
Select? Type Price
Y Shoe $1.25
N Shoe $1.50
Y Boot $2.00
N Clog $3.00
Y Shoe $0.50
“摘要”选项卡显示这样的数据透视表...
Select? Y
Row Labels Sum of Price
Boot $2.00
Shoe $1.75
每当“详细信息”选项卡中的某些内容发生更改,并且有人切换到“摘要”选项卡时,我希望数据透视表自动更新以匹配新数据。
如果只是值改变(使用下面的第一个代码 sn-p),这很容易,但如果 Y 和 N 改变,过滤不会更新。在手动更新过滤之前,不会显示从 N 更改为 Y 的任何内容。
这是我目前所拥有的......
自动更新数据透视表的代码例如是...
Private Sub Worksheet_Activate()
Sheets("Summary").PivotTables("PivotTable1").RefreshTable
End Sub
自动刷新表中的 Excel 自动过滤列(不是数据透视表)的代码是例如...
Private Sub Worksheet_Change(ByVal Target As Range)
With ActiveWorkbook.Worksheets("Details").ListObjects("Table1")
.AutoFilter.ApplyFilter
End With
End Sub
...但我不知道如何将 AutoFilter.ApplyFilter 应用于数据透视表。有任何想法吗?还是等价的?
我发现最接近数据透视表过滤器的是这段代码,它将把我要更新的部分变成黄色...
Worksheets("Details").PivotTables("PivotTable1") _
.PageRange.Interior.Color = vbYellow
...但我不想将其变为黄色 :-),我想将过滤器重新应用于修改后的数据,以便我看到 应该 看到的内容,而不是错误的值和缺失的行。
非常感谢。
【问题讨论】:
标签: vba excel pivot-table autofilter