如何用vba筛选显示或隐藏图表中的某些系列?

当一个图表中含有较多图表系列时,可以通过筛选按钮,有选择的显示或隐藏某些系列。

如下图所示

Excel图表中有8个系列,如果只想显示其中的某些系列,可以单击图表在显示的“漏斗”形状中对要隐藏的系列进行筛选,如下图所示:

在VBA中,可以通过系列对象Serie的IsFiltered属性设置系列是显示还是隐藏。

但是要特别注意的是,所以已经显示的系列组成的系列集合对象是SeriesCollection,而所有系列(包含已经被筛选隐藏的)组成的集合对象是FullSeriesCollection。

有了上述的知识,可以使用如下的代码隐藏或显示图表的系列:

Sub QQ1722187970()
    Dim oWK As Worksheet
    Set oWK = Excel.ActiveSheet
    Dim oChartObject As ChartObject
    Set oChartObject = oWK.ChartObjects(1)
    Dim oChart As Chart
    Dim oSeries As Series
    Set oChart = oChartObject.Chart
    With oChart
        '先将所有系列显示
        For Each oSeries In .FullSeriesCollection
            With oSeries
                .IsFiltered = False
            End With
        Next
        '然后隐藏特定的系列
        Set oSeries = .SeriesCollection("同比")
        With oSeries
            .IsFiltered = True
        End With
    End With
End Sub

上述代码可以将上图中的“同比”系列隐藏,如下图所示:

       

发表评论