excelperfect 标签:VBA,切片器 在《使用Excel切片器切换图表》中,我们看到可以根据切片器中的选择来显示图表,但只是给出了简略的介绍。这段时间抽空研究了一下,给出制作过程。 切片器是显示汇总数据最有吸引力的方式之一。Excel
2010中引入的切片器是一种将数据列表显示为页面上按钮的方法。 单击按钮可以在项目列表中分离出一个项目,如下图1所示。图1 汇总表上方的切片器显示了汇总(全部)。在这个表旁边,我想显示一个图表,如果选择了全部,则显示数据的堆积柱形图,如果选择切片器框中的一个单独的区域,则显示单一的簇状柱形图,如下图2所示。图2 其实,这里创建了两个图表,一个是堆积柱形图,另一个是二维簇状柱形图。使这些图表大小相同并重叠。注意这些图表的名称,因为这将在编码过程中变得非常重要。 再回过头来,看看数据源,如下图3所示。图3 创建汇总数据表如下图4所示。图4 创建数据透视表,如下图5所示。图5 创建切片器,注意切片器的名称,如下图6所示。图6 在数据透视表工作表代码模块中输入下面的事件代码: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 WithEnd
Sub 结果如上图2所示。 有兴趣的朋友可以到知识星球App完美Excel社群下载示例工作簿,进一步研究。欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。