我有下面的查询,它基本上重置了表的标题,然后重置了几个切片器。
Sub ClearAll()
Range("B12").Select
ActiveSheet.ShowAllData
ActiveWorkbook.SlicerCaches("Slicer_Return_Period").ClearManualFilter
ActiveWorkbook.SlicerCaches("Slicer_Branch_Open").ClearManualFilter
ActiveWorkbook.SlicerCaches("Slicer_Branch_RTN").ClearManualFilter
End Sub
如果在其中一个表中未选择任何内容,则下面一行将出现错误:
ActiveSheet.ShowAllData
如果出现错误,我该如何跳过此行并直接清除切片器?
答案1
这比我预想的要容易得多。
我可以添加以下行:
On Error Resume Next
其工作原理与 IFERROR 类似。
完整代码现在如下所示:
Sub ClearAll()
On Error Resume Next
Range("B12").Select
ActiveSheet.ShowAllData
On Error Goto 0
ActiveWorkbook.SlicerCaches("Slicer_Return_Period").ClearManualFilter
ActiveWorkbook.SlicerCaches("Slicer_Branch_Open").ClearManualFilter
ActiveWorkbook.SlicerCaches("Slicer_Branch_RTN").ClearManualFilter
End Sub