我尝试过Google和搜索这个问题,但就是无法解决。我只是想在活动工作表上循环遍历切片器并删除它们,如果存在的话。
目前我有6个切片器。之前我有
ActiveSheet.Shapes.Range(Array("Market Segment Name 2", "Line of Business 2" _
, "Customer Name", "Product Group Name", "Product Type Name", "Product Code") _
).Select
Selection.Delete
但如果我已经删除了切片器,这就没用了。
现在我正在尝试(请注意,wb是在名为“Public”的模块中设置为全局变量)
Option Explicit
Dim sl As Slicer
Dim slName As String
Set wb = ActiveWorkbook
For Each sl In wb.SlicerCaches
If sl.Name = "Market Segment Name 2" Or _
sl.Name = "Line of Business 2" Or _
sl.Name = "Customer Name" Or _
sl.Name = "Product Group Name" Or _
sl.Name = "Product Type Name" Or _
sl.Name = "Product Name" Then
slName = sl.Name
ActiveSheet.Shapes.Range(slName).Delete
End If
Next sl
我觉得它应该能够正常工作。如果我降至SlicerItem级别,我已经成功地使它工作了,但我只是无法弄清楚如何在Slicer级别访问它...如有任何想法,将不胜感激。谢谢。 如果这种方法失败了,我会尝试建立数组并通过删除的方式来实现,但我仍然需要一种测试当前Slicer是否存在的方法。