1つのレポートフィルター(この場合はカナダ)を選択しようとしています。つまり、残りは非表示にする必要があります。このコードは問題なく機能します。
Public Sub FilterPivotTable()
With ActiveSheet.PivotTables("Epidemiology").PivotFields("COUNTRY")
.PivotItems("Canada").Visible = True
.PivotItems("USA").Visible = False
.PivotItems("Germany").Visible = False
.PivotItems("France").Visible = False
End With
End Sub
ただし、「疫学」ピボットテーブルに他の国を追加するときの準備をしているので、forループを作成しようとしました。このコードは機能しません:
With ActiveSheet.PivotTables("Epidemiology").PivotFields("COUNTRY")
.PivotItems("Canada").Visible = True
For Each Pi In .PivotItems
If Pi.Value = "CANADA" Then
Pi.Visible = True
Else
Pi.Visible = False
End If
Next Pi
End With
それは私に回線上のエラーを与えますPi.Visible = False
。私が得るエラーはRun-time error '1004': Unable to set the Visible property of the PivotItem class
forループ内で機能しないのはなぜですか?!
苛立たしいことに、私がオンラインで見つけたすべての例は、同様の構文を使用しています。(インデックスを使用するものもありますが、それを試したところ、同じエラーが発生しました。)