Выберите элемент в сводном срезе, когда значение A1 изменится - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь выбрать элемент в Pivot Slicer, когда я изменяю значение «A1».
Поэтому, когда я изменяю значение «A1» на «ABC», код должен искать «ABC» в элементе слайсера. и выберите его.
Значение «A1» будет таким же, как и элементы в слайсере.

Вот моя попытка, но, похоже, она не работает и выглядит неправильно :(

Private Sub WorkSheet_Change(ByVal Target As Range)

Dim i As Integer
Dim ws As Worksheet
Set ws = ActiveSheet

If Not Intersect(Target, Range("A1")) Is Nothing Then
    For i = 1 To ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems.Count
        If ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems(i).Value = ActiveSheet.Range("A1") Then
           ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems(i).Selected = True
        Else
           ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems(i).Selected = False
        End If
    Next
End If 
End Sub

Заранее спасибо.

1 Ответ

0 голосов
/ 18 октября 2019

Мне удалось найти что-то, что могло бы работать.
Это не идеально, но работает, но все еще ищет лучший способ сделать это.

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim i As Integer
    Dim ws As Worksheet
    Set ws = ActiveSheet

    If Not Intersect(Target, Range("A1")) Is Nothing Then
        ActiveWorkbook.SlicerCaches("Slicer_Test").Slicers(1).SlicerCache.ClearAllFilters
        For i = 1 To ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems.Count
            If ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems(i).Value <> ActiveSheet.Range("A1") Then
               ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems(i).Selected = False
            End If
        Next
    End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...