【问题标题】:Express pivot table filter as what is hidden instead of what is shown?将数据透视表过滤器表达为隐藏的内容而不是显示的内容?
【发布时间】:2016-02-18 17:51:01
【问题描述】:

以下代码由宏记录器创建。它列出了应该显示的内容。

With pvtSource.PivotFields("[dimCalendar].[FinancialYear].[FinancialYear]")
    .VisibleItemsList = Array("[dimCalendar].[FinancialYear].&[2014]", "[dimCalendar].[FinancialYear].&[2015]", "[dimCalendar].[FinancialYear].&[2016]")
End With

是否可以重写它以列出应该隐藏的内容?我想隐藏2013。

以下令人惊讶的是没有工作:

With pvtSource.PivotFields("[dimCalendar].[FinancialYear].[FinancialYear]")
    .HiddenItemsList = Array("[dimCalendar].[FinancialYear].&[2013]")
End With

错误 1004 应用程序定义或对象定义错误

【问题讨论】:

  • 我在遇到的示例中看到的唯一区别是&,但由于它似乎适用于可见列表,我想它也应该适用于隐藏列表.. . 你试过隐藏两件事吗?

标签: vba excel pivot-table powerpivot


【解决方案1】:

我的第一个想法是枚举数组中的所有选项,然后从该数组中删除要隐藏的选项,并使用新的、更小的数组来设置 VisibleItemsList。

如果您知道要删除的项目,逻辑上等效,并且可能比使用 VBA 更快/更容易理解为什么您不能设置 HiddenItemsList。

如果您的维度特别大,我唯一关心的是性能。有了这个具体的例子,我不会太担心,因为即使是一个可笑的大日期维度也会有数百年的数量级。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    相关资源
    最近更新 更多