Excel 如何通过VBA筛选一个项目的切片器?

Excel 如何通过VBA筛选一个项目的切片器?,excel,vba,excel-2010,Excel,Vba,Excel 2010,我的切片器包含100多个城市,我希望通过VBA一次筛选一个城市的切片器(以便将图表区域打印到Powerpoint中)。问题是,我想我必须列出所有其他城市,并将它们显示为“Selected=False”。我需要一个代码块,其中我只指定city/cities I,其余切片器选项默认为“Selected=False” 我已经记录了下面的宏代码,我在网上搜索了这个问题的解决方案,但结果却是空手而归 With ActiveWorkbook.SlicerCaches("Slicer_City")

我的切片器包含100多个城市,我希望通过VBA一次筛选一个城市的切片器(以便将图表区域打印到Powerpoint中)。问题是,我想我必须列出所有其他城市,并将它们显示为“Selected=False”。我需要一个代码块,其中我只指定city/cities I,其余切片器选项默认为“Selected=False”

我已经记录了下面的宏代码,我在网上搜索了这个问题的解决方案,但结果却是空手而归

 With ActiveWorkbook.SlicerCaches("Slicer_City")
        .SlicerItems("New York").Selected = True
        .SlicerItems("Chicago").Selected = False
        .SlicerItems("Trenton").Selected = False
        .SlicerItems("Atlanta").Selected = False
        .SlicerItems("Houston").Selected = False
        .SlicerItems("Los Angeles").Selected = False
'  there are 100 more cities to list if I just wanted "New York" to be selected 
       'in the slicer
End With

我需要的代码应该只指定所选内容(纽约),而不将其他每个城市声明为“Selected=False”。

最快的方法是将感兴趣的数据透视字段设置为pagefield,然后遍历项目,并依次将数据透视字段的.CurrentPage属性设置为每个,因为这会自动将其他项变为FALSE。如果您不希望数据透视表字段位于页面字段区域,那么您仍然可以通过在看不见的地方设置“主”数据透视表,将主数据透视表中的感兴趣字段作为页面字段,使用切片器将主数据透视表连接到数据透视表1(“从”),然后更改主数据透视表的.CurrentPage属性来快速完成此操作,然后通过切片器立即过滤.Slave

查看我的答案,这里有一些关于这类问题的效率提示,以及指向其他包含代码的答案的链接。

类似: