2

私は VBA を初めて使用します...「Product Family」という名前のピボット テーブル フィルター内のすべての選択をクリアし、名前がセル「B33」に含まれる項目のみを選択するマクロを作成しようとしています。1 つのシート「sheet8」でピボット テーブルを参照し、「ダッシュボード」でグラフを変更しようとしています。

これがコードです...

    Sub thisisalsotemp()
'
' thisisalsotemp Macro
'

'
    Sheets("Dashboard").Select
    ActiveSheet.ChartObjects("Chart 1").Activate
    Sheet8.PivotTables("capbylp").PivotFields("Product Family").PivotFields.ClearAllFilters
    With Sheet8.PivotTables("capbylp").PivotFields("Product Family")
            .PivotItems(Range("B33")).Visible = True
    End With
End Sub

エラーは次の行にあります: Sheet8.PivotTables("capbylp").PivotFields("Product Family").PivotFields.ClearAllFilters

エラー メッセージ: オブジェクトはこのプロパティまたはメソッドをサポートしていません

@SeanCheshire: 助けてくれてありがとう。これは私が望むものにはるかに近いと感じています。しかし、私はそれを機能させることができませんでした。私はそれを少しいじって、より近くなりました。ここに私が持っているものがあります...

    Sub thisisalsotemp2()
        Sheets("Dashboard").Select
        Sheet8.PivotTables("capbylp").PivotFields("Product Family") = Range("B33")
    End Sub

エラー 1004 読み取り: ピボットテーブル クラスの pivotfields プロパティを設定できません

行: Sheet8.PivotTables("capbylp").PivotFields("Product Family") = Range("B33")

4

2 に答える 2

1

これは少し関連しています。ユーザーが複数選択を行うたびに、複数選択をクリアしたかったのです。どうやら、VisibleItemsList を設定するとそれが可能になります。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim xPF As PivotField
    Dim nms As Variant
    nms = Array("Calculation", _
        "Rate Type", _
        "xx Hierarchy")
    Set xPT = Application.ActiveSheet.PivotTables(1)
    For Each xPF In xPT.PageFields
        For Each nm In nms
            If xPF.Name Like "*" & nm & "*" Then
                If UBound(xPF.VisibleItemsList) > 1 Then
                    xPF.VisibleItemsList = Array("")
                End If
            End If
        Next nm
    Next xPF
End Sub
于 2014-11-07T17:02:02.150 に答える