首页 > 解决方案 > 清除活动工作表上的特定切片器

问题描述

我在工作表上有两个切片器。一个叫Region,一个叫Hospital。我正在尝试在页面上创建两个按钮。一种只清除医院切片机;另一个仅清除活动工作表上的区域切片器。我有一个按钮可以清除活动工作表上的所有切片器(下面的代码),但我很难让它只与特定的切片器一起工作。

Sub ClearSlicer()

'
'Clears Slicer on main dashboard page
'

Dim Slcr As SlicerCache
Dim slc As Slicer

Application.ScreenUpdating = False

For Each Slcr In ActiveWorkbook.SlicerCaches
    For Each slc In Slcr.Slicers
        If slc.Shape.Parent Is ActiveSheet Then
           Slcr.ClearManualFilter
           Exit For
        End If
    Next slc
Next Slcr

Application.ScreenUpdating = True

End Sub

我尝试添加 ActiveWorkbook.SlicerCaches("Hospital") ,但这似乎也不起作用。这引发了一个我无法纠正的调试错误。

我已经在这里搜索过,但还没有找到,所以如果我碰巧错过了,我很抱歉。这里的任何帮助都会有所帮助。谢谢

标签: excelvba

解决方案


您可以参考 a Slicerby .Name

Sub ClearSlicer()

'
'Clears Slicer on main dashboard page
'

Dim Slcr As SlicerCache
Dim slc As Slicer

Application.ScreenUpdating = False

For Each Slcr In ActiveWorkbook.SlicerCaches
    For Each slc In Slcr.Slicers
        If slc.Name = "Region" Or slc.Name = "Hospital" Then
            Slcr.ClearManualFilter
        End If
    Next slc
Next Slcr

Application.ScreenUpdating = True

End Sub

如果您不确定切片器名称,也许使用Like

If slc.Name Like "*Region*" Or slc.Name Like "*Hospital*" Then

(尽管您可能需要检查切片器是否与ActiveSheet您当前一样)。


推荐阅读