Aqui está uma função definida pelo usuário que você pode chamar diretamente da pasta de trabalho que faz isso para você e pode ser executada em qualquer tipo de fatiador, seja uma tabela dinâmica 'tradicional', uma tabela dinâmica OLAP / PowerPivot ou uma fatia de tabela . Basta colocar isso em um módulo de código padrão e, em seguida, na pasta de trabalho, digite o seguinte:
= SlicerItems ("Slicer_City")
Public Function SlicerItems(SlicerName As String, Optional sDelimiter As String = "|") As String
Dim oSc As SlicerCache
Dim oSi As SlicerItem
Dim i As Long
Dim lVisible As Long
Dim sVisible() As String
On Error Resume Next
Application.Volatile
Set oSc = ThisWorkbook.SlicerCaches(SlicerName)
If Not oSc Is Nothing Then
With oSc
If .FilterCleared Then
SlicerItems = "(All)"
Else
If .OLAP Then
SlicerItems = Join(.VisibleSlicerItemsList, sDelimiter)
SlicerItems = Replace(SlicerItems, .SourceName, "")
SlicerItems = Replace(SlicerItems, ".&[", "")
SlicerItems = Replace(SlicerItems, "]", "")
Else
lVisible = .VisibleSlicerItems.Count
If .VisibleSlicerItems.Count = 1 Then
SlicerItems = .VisibleSlicerItems(1).Name
Else
ReDim sVisible(1 To lVisible)
For i = 1 To lVisible
sVisible(i) = .VisibleSlicerItems(i).Name
Next i
SlicerItems = Join(sVisible, sDelimiter)
End If
End If
End If
End With
Else
SlicerItems = SlicerName & " not found!"
End If
End Function
E aqui está como fica: