2017-10-17 12 views
1

VBAにはまったく新しいものがあります。私はタブに約8つのチャートを持つワークブックを持って、たくさんのタブがあります。各グラフは同じ値でフィルタリングする必要があり、マクロを動作させるのに苦労しています。ここに私が持っているものは次のとおりです:VBA複数のチャートフィルタ

Sub ChartFilter() 
' 
' 
' 

' 
For Each Chart In ActiveWorkbook.Charts 
    ActiveChart.Legend.Select 
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Category1") 
     .PivotItems("Value1").Visible = True 
     .PivotItems("Value2").Visible = True 
     .PivotItems("Value3").Visible = True 
     .PivotItems("Value4").Visible = True 
     .PivotItems("Value5").Visible = True 
     .PivotItems("Value6").Visible = True 
     .PivotItems("Value7").Visible = True 
    End With 
    Next Chart 
End Sub 

どこが間違っているのか分かりますか?

ありがとうございます!

+0

は、pivotchartsのチャートですか? –

答えて

1

構文に間違った箇所があります。私は以下のように書き直してテストしました。これはあなたのグラフがあると仮定しますPivotCharts

Dim ws As Worksheet 

For Each ws In ThisWorkbook.Worksheets 

    Dim pt As PivotTable 

    For Each pt In ws.PivotTables 

     Dim pi As PivotItem 

     For Each pi In pt.PivotFields("Category1").PivotItems 

      Select Case pi.Name 

       Case Is = "Value1", "Value2", "Value3", "Value4", "Value5", "Value6", "Value7" 
        pi.Visible = True 
       Case Else 
        pi.Visible = False 

      End Select 

     Next 

    Next 

Next 
+0

ありがとう、Scott!間違いなく多くのことを学んでいますが、このプロジェクトで私を助けてくれてありがとう。 –