【问题标题】:VBA: Filtering Rows in Power Pivot Table based on an ArrayVBA:根据数组过滤 Power Pivot 表中的行
【发布时间】:2018-11-27 06:35:56
【问题描述】:

我有以下代码,我试图根据某个公司列表过滤我的数据透视表 ROWS。我已经在数组 peerGroup 中加载了这些公司名称,我知道数组的长度。我的 If 语句正确识别了我的数组中在数据透视表中找到的哪些公司,但我不知道如何隐藏该值。

我查看了其他线程,发现最常见的答案是使用 .Visible,但是当我尝试将它应用于我的代码时,我收到了运行时错误。 “无法设置 PivotItem 类的 Visible 属性”。

Dim ct As Integer
Dim i As Integer
Dim PG_RRC_PVT As PivotTable
Dim pi As PivotItem


Set PG_RRC_PVT = Worksheets("Pivot4Charts").PivotTables("PGRRCPVT")

PG_RRC_PVT.PivotFields("[CoTicker].[CompanyMask].[CompanyMask]").ClearAllFilters


For Each pi In PG_RRC_PVT.PivotFields("[CoTicker].[CompanyMask].[CompanyMask]").PivotItems
    For i = 0 To pgCount
         If pi.Name = "[CoTicker].[CompanyMask].&[" & peerGroup(i) & "]" Then
            pi.Visible = False
         End If
    Next i
Next pi

【问题讨论】:

    标签: excel vba powerpivot


    【解决方案1】:

    在自己开车进去之后,我的尺寸是成排的,这就是 .Visible 不起作用的原因。要处理 VisibleItemList 中的语法.. 你可以调整你的数组...见下面的代码

    For i = 0 To pgCount - 1
        peerGroup(i) = "[CoTicker].[CompanyMask].&[" & peerGroup(i) & "]"
        MsgBox peerGroup(i)
    Next
    ActiveSheet.PivotTables("PGRRCPvt").PivotFields("[CoTicker].[CompanyMask].[CompanyMask]").VisibleItemsList = Array(peerGroup)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多