我在工作表上有两个切片器。一个叫区域,另一个叫医院。我正在尝试在页面上创建两个按钮。一种将仅清除医院切片机;另一个仅清除活动工作表上的“区域”切片器。我有一个按钮可以清除活动工作表上的所有切片器(下面的代码),但是我很难使它仅与特定的切片器一起使用。
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
但这似乎也不起作用。这引发了我无法纠正的调试错误。
我已经搜索过但尚未在此处找到,所以如果我碰巧错过了它,我深表歉意。这里的任何帮助都会有所帮助。谢谢
答案 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
上)。