これは私たちを困惑させています。アイテムを複数選択できるレポート フィルターを備えた標準のピボット テーブルがあります。レポート フィルターで選択した項目を次のように取得できます。
Dim pi As PivotItem
For Each pi In PivotTables("MyPivot").PivotFields("MyField").PivotItems
If pi.Visible Then
Debug.Print pi.Value
End If
Next
単純。私の同僚は、項目を複数選択できるレポート フィルターを備えた標準のピボット テーブルを持っています。彼は、同じコードを使用して、レポート フィルターで選択した項目を取得しようとしています。
Dim pi As PivotItem
For Each pi In PivotTables("HisPivot").PivotFields("HisField").PivotItems
If pi.Visible Then
Debug.Print pi.Value
End If
Next
で Type Mismatch エラーが発生しpi.Visible
ます。入力後、インテリセンスがすべてのプロパティとメソッドと共に表示されるため、これVisible
は のプロパティであることがわかります (ご想像のとおり)。pi を呼び出すと値が正しく出力されるため、pi には有効な PivotItem が含まれていることがわかります ( /ステートメントを削除すると、リスト内のすべての項目が出力されますが、値に関係なく値が出力されます)。彼のレポート フィルターには「特別な」ものはありません。計算フィールドなどではありません。の他のほとんどのプロパティも失敗します。pi
pi.
PivotItem
pi.Value
If
End If
PivotItem
なぜPivotItem
この動作を示すのか、誰かが知っていますか? MSDN リファレンスはかなり不適切なようです。