2017-02-23 57 views
1

に基づいて、私は2つのフィルターとピボットテーブル「IncTrend」を持っています。 両方のフィルタ "Service1"と "Service2"の名前が変更されています(元々PowerPivotでテーブルを作成したときにサービスと呼ばれていました)VBAピボットテーブルのフィルター交換は、セルの値

ワークシートのA2には、 (正確に一致する)フィルタの項目の

私は、A2から "Choice"で読み込むVBAコードを作成しようとしており、ピボットテーブルフィルタ "Service1" & "Service2"を一致させるように変更しました。

前提は私が一致するフィルタを変更する必要が異なるデータを持つ多くの異なるピボットテーブルを持っていますが、私もVBAを使用して変更するものを得ることができないということです。

は、私がどのような援助がいただければ幸いです

ピボットテーブルクラスのPivotFieldsプロパティを取得するために

できません

を得続けます。ここ は、ピボットテーブルのSSです。

enter image description here

私のコードです:

Sub Filter_Change() 

Dim WS As Worksheet: Set WS = ActiveWorkbook.Worksheets("Main") 
Dim PT1 As PivotTable: Set PT1 = WS.PivotTables("IncTrend") 
Dim PF1 As PivotField: Set PF1 = PT1.PivotFields("[Inc Open].[Service].[Service]") 
Dim Choice As String: Choice = Worksheets("Main").Range("A2").Value 

With PF1 
    .ClearAllFilters 
    .CurrentPage = Choice 
    '.PivotFilters.Add Type:=xlCaptionEquals, Value1:=Choice 
End With 
End Sub 
+0

は、あなたの 'PivotField'名が正確に綴られてください。 "Service1"?何かの間にスペースがない? –

+0

私はそれが問題を引き起こしていなかったことを確認するためにそれを修正しました。あなたの提案と私の変更を示す上記のコードを編集しました。あなたが提案したよう – Fitzy

答えて

0

はあなたの行を置き換えます

PF1.CurrentPage.Name = Choice  

付:

With PF1 
    .ClearAllFilters 
    .CurrentPage = Choice 
End With 
+0

おかげシャイは、私がやりました。フィルタを(All)に変更しましたが、Pivo​​tFieldクラスのCurrentPageプロパティを設定できませんでした。私は現在のページ行を.PivotFilters.Addで置き換えました。タイプ:= xlCaptionEquals、Value1:= WS.Range( "A2")。値は "Application-defined or object-defined error"を返します。 – Fitzy

+0

@Fitzyは、あなたの 'PivtoTable'のスクリーンショットを含める? –

+0

Iが追加されている画面が要求されるように、私はスクリーンショットで編集シャイ@ – Fitzy

関連する問題