2016-08-10 8 views
0

"(空白)"エントリのピボットテーブルの行フィールドをフィルタリングする最も効率的な方法(最小コード)を探しています。"(空白)"エントリのピボットテーブルの行フィールドをフィルタリングする最も効率的な方法

私に
ActiveSheet.PivotTables("PivotTable1").PivotFields("Some Field").CurrentPage = "Something" 

、これは効率的であるが、PageFieldsないRowFieldsため、この唯一の作品:私は.CurrentPage法を用いて、(うまくいけば、私は正しくここで話している)PageField /レポートフィルタを設定する方法を知っています。また、私は「true」または「false」としてPivotItems.Visibleプロパティを設定するには、ループオプションを認識しています:

With ActiveSheet.PivotTables("PivotTable1").PivotFields("Some Field") 
    For each PvtItm in .PivotItems 
     If pvtItm.Value = "(blank)" Then 
      PvtItm.Visible = True 
     Else 
      PvtItm.Visible = False 
     End If 
End With 

これはRowFieldsのために動作しますが、いくつかの余分な行です。私はこれを使うことができますが、もっと短い方法があれば好奇心をそそられました。また、「(空白)」の項目だけを見たいので、別の方法で設定する必要がある場合= "(空白)"を使用すると、何を使用するのかが分かります。任意の提案をいただければ幸いです!仕事をしました - あなたは>に等しいラベルフィルタと行ラベルをフィルタリングするマクロを記録する場合

答えて

0

...あなたが

ActiveSheet.PivotTables("PivotTable1").PivotFields("Some Field") _ 
    .PivotFilters.Add Type:=xlCaptionEquals, Value1:="(blank)" ' or maybe Value1:="" ? 
+0

おかげで、Slaiのようなものを取得します。私が気づいた唯一の事は、ピボットテーブルとフィールドに接続されたスライサーはフィルターを反映していないが、ピボットテーブル自体は良く見えるということです。 – spyder3909

+0

Excel 2007で試してみましたので、あなたのバージョンにマクロを記録して、生成されたコードが異なるかどうか試してみることができます。 – Slai

関連する問題