在Excel中可以为智能表格、透视表插入切片器。
利用切片器可以快速直观地筛选数据。
下图显示了为数据透视表添加的切片器:
当把数据源中的“店2”相关数据全部删除,更新数据透视表后,如下图所示:
更新数据透视表后,“店名”切片器仍然显示了已经从数据源中删除的“店2”项目。
为了在切片器中不显示已经从数据源中删除的项目,可以打开“切片器设置”,取消勾选“显示从数据源中删除的项目”即可,如下图所示:
但是,当在一个excel工作簿中添加了很多切片器,逐个手动设置非常费时,可以使用vba批量设置。
如果要实现上述效果,需要设置SlicerCache对象的ShowAllItems属性为False。
方法一、 遍历工作表的数据透视表的切片器的切片器缓存对象:
Sub QQ1722187970() Dim oPT As PivotTable Dim oPC As PivotCache Dim oWK As Worksheet Dim oSC As SlicerCache Dim oSlicer As Slicer Dim oWB As Workbook Set oWB = Excel.ThisWorkbook For Each oWK In oWB.Worksheets For Each oPT In oWK.PivotTables With oPT For Each oSlicer In .Slicers With oSlicer '不显示从数据源中删除的项目 .SlicerCache.ShowAllItems = False End With Next End With Next Next End Sub
方法二、遍历工作簿中所有切片器缓存对象:
Sub QQ1722187970() Dim oPT As PivotTable Dim oPC As PivotCache Dim oWK As Worksheet Dim oSC As SlicerCache Dim oSlicer As Slicer Dim oWB As Workbook Set oWB = Excel.ThisWorkbook For Each oSC In oWB.SlicerCaches '不显示从数据源中删除的项目 oSC.ShowAllItems = False Next End Sub
通过上述介绍的两种思路都可以快速地批量将所有切片器设置为不显示从数据源中删除的项目。
发表评论