2016-07-13 14 views
0

私はピボットテーブルを作成するためにvbaを使用しています。テーブルにはいくつかのフィルタがあり、フィルタから複数の項目を選択できません。エクセルピボットテーブルフィルタで複数​​の項目を選択する

私はマクロを記録し、同じ機能を使用したシステムは、コードを生成したとしてではなく、私は以下

"Run-time error '1004': Unable to set the CurrentPage Property of the PivotField Class" 

を取得していますが、ピボットテーブルを作成するために使用されるコード、作品は次のとおりです。

Dim objTable As PivotTable 
    Dim objField As PivotField 

    ' Select the sheet and first cell of the table that contains the data. 
    ActiveWorkbook.Sheets("All Projects - iNexus").Select 
    Range("A1").Select 

    ' Create the PivotTable object based on the Employee data on Sheet1. 
    Set objTable = ActiveSheet.PivotTableWizard 

    ' Specify row and column fields. 
    Set objField = objTable.PivotFields("Product") 
    objField.Orientation = xlRowField 
    Set objField = objTable.PivotFields("SPA Value Category") 
    objField.Orientation = xlColumnField 

    ' Specify a data field with its summary 
    ' function and format. 
    Set objField = objTable.PivotFields("2014 FY Value ($)") 
    objField.Orientation = xlDataField 
    objField.Function = xlSum 
    objField.NumberFormat = "$ #,##0" 

    Set objField = objTable.PivotFields("2015 FY Value ($)") 
    objField.Orientation = xlDataField 
    objField.Function = xlSum 
    objField.NumberFormat = "$ #,##0" 

    ActiveSheet.Name = "iNexus Pivot" 

    ' Rename the pivot table 
    With Sheets("iNexus Pivot") 
     .PivotTables(1).Name = "PivotTable2" 
    End With 

    With Sheets("iNexus Pivot").PivotTables("PivotTable2").DataPivotField 
     .Orientation = xlColumnField 
    End With 

これは私が記録したマクロから複数の項目を選択するために、記録したマクロからもらったコードです:

ActiveSheet.PivotTables("PivotTable2").PivotFields("Project Status"). _ 
    CurrentPage = "(All)" 
    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Project Status") 
     .PivotItems("A").Visible = False 
     .PivotItems("B").Visible = False 
     .PivotItems("C").Visible = False 
    End With 
    ActiveSheet.PivotTables("PivotTable2").PivotFields("Project Status"). _ 
     EnableMultiplePageItems = True 

CurrentPageとPivotItemsの両方が問題の原因と思われますが、私のVBAスキルは非常に限られており、問題をデバッグできません。

ありがとうございました。ヘルプをよろしくお願いいたします。

+0

プロジェクトステータスフィールドは、「レポートフィルタ」または「行ラベル」(または「列ラベル」)ですか?コードは少し異なります。 –

+0

@ScottHoltzman:この特定のケースでは、レポートフィルタですが、私もカラムフィルタを持っています。私はレポート、行と列の違いが大きすぎないと仮定しています。 – Yuvaraj

答えて

0

私はこの問題を考え出し、溶液を次のコマンドを使用して向きを割り当てる際のフィルタを含めることである。

objField.PivotItems("XXX").Visible = False 

enter link description here

Iは、以下のリンクから論理を発見しました。

関連する問題