使用Excel切片器切换图表

2022-11-16 10:38:44 浏览数 (1)

如下图1所示,根据切片器中的选择来显示图表。它通过工作表change事件运行,在堆积柱形图和簇状柱形图之间切换。其技巧是创建两个图表,一个用于每个区域中的一个,另一个用于总计或所有区域。这样,可以在区域和总计之间切换。

图1

下面的VBA过程帮助这个处理过程的运行。它是在两个图表之间的切换,具体取决于切片器的选择。“All”选项生成合并的堆积柱形图,而各区域选项只生成一个柱形图。

这个过程需要放置在包含数据透视表的工作表模块中:

代码语言:javascript复制
Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
    Dim slItem As SlicerItem
    With ActiveWorkbook.SlicerCaches("Slicer_Data")
        For Each slItem In .VisibleSlicerItems
            If slItem.Name = "All" Then
                ActiveSheet.Shapes("Chart 1").ZOrder msoSendToBack
            Else
                ActiveSheet.Shapes("Chart 2").ZOrder msoSendToBack
            End If
        Next slItem
    End With
End Sub

注:本文学习整理自thesmallman.com。Excel切片器以前关注得不多,基本上没有研究过,这是第一次接触到切片器,并且是VBA编程,有点陌生。有兴趣的朋友可以到原网站下载示例工作簿研究,也可以到知识星球App完美Excel社群下载示例工作簿。

vba

0 人点赞