2017-10-17 96 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

是图表数据透视图? –

回答

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

谢谢,斯科特!肯定还有很多东西需要学习,但是我很感谢你帮助我完成这个项目。 –