清除活动工作表上的特定切片器

时间:2019-10-03 15:07:37

标签: excel vba

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

Void

我尝试添加 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 但这似乎也不起作用。这引发了我无法纠正的调试错误。

我已经搜索过但尚未在此处找到,所以如果我碰巧错过了它,我深表歉意。这里的任何帮助都会有所帮助。谢谢

1 个答案:

答案 0 :(得分:2)

您可以用.Name来引用Slicer

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上)。

相关问题