前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel VBA操作切片器切换显示不同的图表

Excel VBA操作切片器切换显示不同的图表

作者头像
fanjy
发布2022-11-16 10:44:25
2.1K0
发布2022-11-16 10:44:25
举报
文章被收录于专栏:完美Excel

标签:VBA,切片器

在《使用Excel切片器切换图表》中,我们看到可以根据切片器中的选择来显示图表,但只是给出了简略的介绍。这段时间抽空研究了一下,给出制作过程。

切片器是显示汇总数据最有吸引力的方式之一。Excel 2010中引入的切片器是一种将数据列表显示为页面上按钮的方法。

单击按钮可以在项目列表中分离出一个项目,如下图1所示。

图1

汇总表上方的切片器显示了汇总(全部)。在这个表旁边,我想显示一个图表,如果选择了全部,则显示数据的堆积柱形图,如果选择切片器框中的一个单独的区域,则显示单一的簇状柱形图,如下图2所示。

图2

其实,这里创建了两个图表,一个是堆积柱形图,另一个是二维簇状柱形图。使这些图表大小相同并重叠。注意这些图表的名称,因为这将在编码过程中变得非常重要。

再回过头来,看看数据源,如下图3所示。

图3

创建汇总数据表如下图4所示。

图4

创建数据透视表,如下图5所示。

图5

创建切片器,注意切片器的名称,如下图6所示。

图6

在数据透视表工作表代码模块中输入下面的事件代码:

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

结果如上图2所示。

有兴趣的朋友可以到知识星球App完美Excel社群下载示例工作簿,进一步研究。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档