Excel 检查切片器中是否选择了任何值

Excel 检查切片器中是否选择了任何值,excel,vba,macos,Excel,Vba,Macos,我的工作簿上有一些切片器。对于一些切片器,我想检查一下切片器中是否选择了任何内容,如果选择了,请在工作簿的其他地方做一些事情。 我在Mac上使用Excel。下面是我试过的。它在“For Each”行上给出了一个错误“Invalid procedure call or argument”。有什么办法吗?我有MsgBox的地方就是我将代码放在工作簿其他地方的地方 Sub Check_Other_Slicers() Dim si As SlicerItem For Each si In Active

我的工作簿上有一些切片器。对于一些切片器,我想检查一下切片器中是否选择了任何内容,如果选择了,请在工作簿的其他地方做一些事情。 我在Mac上使用Excel。下面是我试过的。它在“For Each”行上给出了一个错误“Invalid procedure call or argument”。有什么办法吗?我有MsgBox的地方就是我将代码放在工作簿其他地方的地方

Sub Check_Other_Slicers()
Dim si As SlicerItem

For Each si In ActiveWorkbook.SlicerCaches("District").SlicerItems

    If si.Selected = True Then
        MsgBox "x"
    End If
Next si
End Sub••••ˇˇˇˇ
使用以下命令:

Sub subCheckSlicerSelection()

    Dim intCnt As Integer
    
    With ThisWorkbook.SlicerCaches("Slicer_Test")
        
        'Looping through the slicer items
        For intCnt = 1 To .SlicerItems.Count
            
            'Check if the slicer item is selected
            If .SlicerItems(intCnt).Selected Then
                
                'Show the selected value
                MsgBox .SlicerItems(intCnt).Caption
                
            End If
        
        'Next slicer item
        Next intCnt
    
    End With

End Sub

我复制并粘贴到编辑器中。我将切片器的“切片器测试”改为“区域”,它在“With”行给出。“无效的过程调用或参数”。我已验证切片器的名称。实际上我已经用多个切片器检查过了,并且得到了相同的错误。好的。我解决了我的问题。单击切片器时,我正在使用工作簿上显示的值。在切片器设置中,有一个“要在公式中使用的值:”的值。这里的值是“Slicer\u District”,通过在宏中使用它,它起作用了。@EricShreve正确!切片机以该模式命名为“切片机”。始终将“切片器”附加到切片器名称。