2017-01-18 13 views
0

私は、特定の企業リストに基づいてピボットテーブルROWSをフィルタリングしようとしています。私はすでにアレイの長さを知っている、配列peerGroupの中にそれらの会社名をロードしました。 My Ifステートメントは、ピボットテーブルにある配列内のどの会社を正しく識別しますが、その値を非表示にする方法はわかりません。VBA:配列に基づくPower Pivotテーブルの行のフィルタリング

私は他のスレッドを見ましたが、私が見つけた最も一般的な答えは.Visibleですが、私のコードに採用しようとすると、ランタイムエラーが発生します。 msgstr "PivotItemクラスのVisibleプロパティを設定できません" msgid。

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 

答えて

0

自分自身を運転した後、私が行の次元を持っていたという事実はなぜですか。 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) 
関連する問題