0

我在 microsoft Excel 上有一个带有切片器的数据透视表,我想制作一个宏,如果在切片器上选择了多个项目,则会发生某些事情。

有人能帮我吗?

4

1 回答 1

0

这是我编写的一个函数,用于获取切片器中的选择。它将返回一个逗号分隔的选定切片器项目的字符串。

如果您愿意,您可以调整它以仅返回一些选定的项目。虽然我个人认为知道选择了哪些项目更重要。

'This function takes one parameter
'This is the Formula name for the slicer
'you can find this name by right clicking on a slicer
'and choosing Slicer Settings...
Public Function getSlicerChoices(SlicerName As String) As String
    Dim slicerval       As SlicerCache
    Dim sItm            As SlicerItem

    Set slicerval = ThisWorkbook.SlicerCaches(SlicerName)

    For Each sItm In slicerval.VisibleSlicerItems
        If sItm.Selected Then
            If sItm.Name <> "(blank)" Then
                If getSlicerChoices = "" Then
                    getSlicerChoices = "'" & Replace(Trim(sItm.Name), "'", "''") & "'"
                Else
                    getSlicerChoices = "'" & Replace(Trim(sItm.Name), "'", "''") & "'," & getSlicerChoices
                End If
            End If
        End If
    Next sItm

    'Take last comma off the string
    If Right(getSlicerChoices, 1) = "," Then
        getSlicerChoices = Left(getSlicerChoices, Len(getSlicerChoices) - 1)
    End If

    getSlicerChoices = Replace(getSlicerChoices, "(blank)", "")
    Set slicerval = Nothing

End Function
于 2016-06-07T23:55:47.340 回答