gpt4 book ai didi

excel - 如何从 VBA 代码或公式访问 Excel 数据透视表中选定的报表过滤器值?

转载 作者:行者123 更新时间:2023-12-02 15:22:33 27 4
gpt4 key购买 nike

我有一个带有报告过滤字段的数据透视表。我需要根据用户在报告过滤器字段中选择的值执行一些操作。

如果用户选择单个值(或选择全部) - 获取该值没有问题。在示例视频中,它是单元格 B1,但如果选择了多个值,则此字段仅显示多个选定

在哪里可以获得所选的特定报告过滤器值?我可以从 Excel 公式访问这些值吗?如果没有 - 我可以从 VBA 代码访问这些值吗?

Sample video

最佳答案

由于 stackoverflow 中没有任何事件,我向其他几个论坛发布了问题。我得到回应(导致解决方案)的唯一地方是 msdn forum 。如果其他人在 stackoverflow 中搜索此内容,我会在此处发布解决方案的本质,在提供的链接中提供其他信息。

我没有获得如何直接从公式访问报告过滤器的值的信息 - 但这可以通过创建用户定义的函数来完成 -> see how to do that

1) 这是从 VBA 代码访问报告过滤器字段的方法(由 P.Thornton 编写):

Sub Button960_Click()
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Set pt = ActiveSheet.PivotTables(1)

pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
pt.PivotCache.Refresh

Set pf = pt.PivotFields("your report field name")
For Each pi In pf.PivotItems
Debug.Print pi.Name, pi.Visible

If pi.Visible Then
'... user has selected this value!
End If
Next
End Sub

请注意,您应该设置 PivotCache.MissingItemsLimit = xlMissingNone,否则您可能会遇到意外结果。就我而言,事实证明缓存中有一堆不再存在于数据源中的值。这是一个遗留文件,那些不存在的值很可能在过去的某个时刻存在于文件中,后来从文件中删除。因此,清除 PivotCache 会清除一些旧的、不存在的数据。

2) A nice solution how to display list of selected values by the side of the report filter fields available at the msdn forum (作者:D.Tamburino)

附注感谢 MSDN 论坛的 P.Thornton 和 D.Tamburino!

关于excel - 如何从 VBA 代码或公式访问 Excel 数据透视表中选定的报表过滤器值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29510224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com