Sie können das folgende Verfahren und Ereignis verwenden, um den Namen der ausgewählten Elemente abzurufen.
Fügen Sie diese Prozedur jedem Modul hinzu und verwenden Sie das unmittelbare Fenster (Ansicht/Direkt-Fenster), um den korrekten Namen des SliceCache zu lesen und zu kopieren. Es muss in dem anderen Snippet verwendet werden.
Sub GetSlicerData()
'## Variables ##
Dim iSlicerCache As SlicerCache 'Slicer Cache Object
Dim iSlicerItem As SlicerItem 'Slicer Item
Dim iSlicer As Slicer 'Slicer Object
'## Looping through Slicer Caches in 'ThisWorkbook' ##
For Each slSlicerCache In ThisWorkbook.SlicerCaches
Debug.Print ("Slicer Cache Namee: " & slSlicerCache.Name) 'Printing the name property of the SlicerCaches
'## Looping through Slicers contained in the SlicerCaches ##
For Each iSlicer In slSlicerCache.Slicers
Debug.Print ("Slicer Name: " & iSlicer.Name) 'Printing the slicer names
Next iSlicer
'## Looping through Items contained in the SlicerCaches ##
'and testing selection status
For Each iSlicerItem In slSlicerCache.SlicerItems
If iSlicerItem.Selected = True Then Debug.Print ("Selected Item: " & iSlicerItem.Name) 'Printing the slicer items
Next iSlicerItem
Next slSlicerCache
End Sub
Der zweite Schnipsel ist ein Arbeitsblatt Ereignis, das zu dem Blatt hinzugefügt werden muss, die durch den Slicer beeinflusst.
Klicken Sie doppelt auf das Blatt im Makro-Editor (Projekt-Explorer-Fenster), um den Code hinzuzufügen: Adding the Event to the sheet
Der zweite Snippet wird die ausgewählten Elemente in der unmittelbaren Fenster drucken.
Private Sub Worksheet_Change(ByVal Target As Range)
'Debug.Print ("Sheet name: " & Me.Name) 'Sheet name
'## Looping through Slicer Caches in 'ThisWorkbook' ##
Dim slcSlicerCache As SlicerCache 'Slicer Cache Object
Dim iSlicerItem As SlicerItem 'Slicer Item
Dim stItems As String
'## Setting slicer cache ##
'Replace with the correct name: "Slicer_Internal_Punter_ID"
Set slcSlicerCache = ThisWorkbook.SlicerCaches("Slicer_Internal_Punter_ID")
For Each iSlicerItem In slcSlicerCache.SlicerItems
If iSlicerItem.Selected = True Then
Debug.Print ("Selected Item: " & iSlicerItem.Name) 'Printing selected
If Len(stItems) = 0 Then stItems = iSlicerItem.Name Else stItems = stItems & vbNewLine & iSlicerItem.Name
End If
Next iSlicerItem
Debug.Print ("Selected Items: " & vbNewLine & stItems) 'Printing selected
'ADD CODE HERE: moving content to clipboard
End Sub
Bitte darauf, den korrekten Namen des Slicer in dieser Zeile mit:
Set slcSlicerCache = ThisWorkbook.SlicerCaches("Slicer_Internal_Punter_ID")
Zusätzlich die Artikelnamen schreiben in der Zwischenablage können Sie unter folgendem Link einsehen: How to copy text to clipboard
Diese Seite ist kein kostenloser Codierservice. Wenn Sie neu in VBA sind, sollten Sie mit etwas weniger Komplexem beginnen. – teylyn
in Ordnung noch danke dafür. –