引用SlicerCache按名称,而不是数字

我有一些代码引用切片机:

For Each item In wb.SlicerCaches("Segment").SlicerItems If item.Selected = True Then If Len(sSegment) > 0 Then sSegment = sSegment & "|" sSegment = sSegment & item.Caption End If Next item 

但我得到Invalid procedure call or argument 。 我已经看到许多引用名称的例子,但不能得到它的工作。 如果我使用(1),(3)等,然后添加一个切片机,它弄乱了顺序,所以代码被取消。

我怎样才能引用他们的名字,我的最终目标是迭代选定的项目。

您可能需要通过在其前面添加Slicer_来引用slicercache。

例如,我添加了一个Authors切片器到一个包含关于书籍的信息的表格,我可以通过使用这个代码来引用它:

 Debug.Print ActiveWorkbook.SlicerCaches("Slicer_Author").Slicers("Author").Caption 

我知道添加Slicer_的原因是我右击切片机,然后selectSlicer Settings...看到这个:

切片机信息

而这似乎参考切片机罚款。 真碰运气,我碰巧看到了,想到要试试看。

尝试:

 For Each item In wb.SlicerCaches.Item("Segment").SlicerItems