以下のコードを使用して、各PivotFieldに存在するピボットアイテムとその表示ステータスを印刷しました。レポートフィルタに5つのピボットフィールドがあります。VBAを使用してレポートフィルタに存在するピボットフィールドのピボットアイテムにアクセスする方法
問題は、ピボットフィールドの番号を正しく取得していることです。しかし、ピボットアイテムの数になると、ピボットフィールドごとに0が返されます。実際には、各フィールドには多くのアイテムがあります。私は目に見えるアイテムを印刷しようとはしていない。しかし、アイテムとその表示可能なステータス。
Dim pf As PivotField
Dim pt As PivotTable
Dim pi As PivotItem
Set pt = Sheets("Reasons").PivotTables("PivotFields")
For Each pf In pt.PageFields
For Each pi In pf.PivotItems
Debug.Print pi.Name & " : " & pi.Visible
Next
Next
Pramodさんを使用することはできません場合に、効率的にあなたの同期のピボットテーブルをすることができます下のリンクで私のコードを参照してください:あなたは後にしている結果に、もう少し詳しく説明することができます?他の投稿では、目に見えるアイテムの配列が必要だと言います。これもここのケースですか?興味のないところでは、配列で何をするつもりですか?私はいくつかのアイデアを持っていますが、私があなたの究極の意図を知っていれば助けになります – jeffreyweir
Jeffにお礼をありがとう。私は自分のレポートフィルタに5つのピボットフィールドを持っており、ユーザーはそれらのいずれかからアイテムを選択することができます。 1つのフィルターで選択するたびに、可視アイテムを配列に集め、その配列をVisibleItemsListメソッドに渡して、同じ変更を他のピボットテーブルに反映させたいと思います。簡単に言えば、私はピボットフィールドの項目が選択されるたびに、あるピボットテーブルのフィルタを他のピボットテーブルに適用したいと考えています。 – Pramod
そして、私はあなたが2007年Excelを使用していますか? – jeffreyweir