Запустить макрос, назначенный слайсеру, при изменении любого отдельного значения

У меня есть слайсер (на основе таблицы), я хотел бы создать макрос, чтобы при выборе любого отдельного значения в моем слайсере макрос автоматически выбирал и копировал вторую видимую ячейку в столбце D (например, если я выбираю значение X13  введите описание изображения здесь в моем слайсере, я хочу, чтобы мой макрос автоматически выбирал и копировал вторую видимую ячейку в столбце D). Часть моего кода VBA для выбора и копирования второй видимой ячейки в столбце D работает отлично, но не работает, когда я выбираю одно значение в моем слайсере (я назначил макрос, связанный с моим слайсером). Я не знаю, какая строка кода VBA, которую мне нужно добавить для моего макроса, работает, когда я выбираю какое-либо одно значение в моем слайсере. Пожалуйста, найдите мой код VBA ниже.

Sub NextVisiblecellassignedtomyslicer()
Dim r As Range
Set r = Range("D1")
For i = 1 To Rows.Count
Set r = r.Offset(1, 0)
    If r.EntireRow.Hidden = False Then
    r.Copy
    Exit Sub
End If
Next
End Sub

person Xavi    schedule 14.09.2019    source источник


Ответы (1)


Наконец-то мне удалось самостоятельно найти решение своей проблемы:

Sub NextVisiblecellassignedtomyslicer()
Dim slr As Slicer
Dim si As SlicerItem
Dim i As Long
Dim it As Object
Set sc = ActiveWorkbook.SlicerCaches("Slicer_WBS_element")

  With sc
 For Each it In .SlicerItems
If it.Selected = True Then
call nextvisiblecellV10
 End If
 Next it
  End With
End Sub 

Sub nextvisiblecellV10 ()

Dim r As Range
Set r = Range("D1")
For i = 1 To Rows.Count
Set r = r.Offset(1, 0)
If r.EntireRow.Hidden = False Then
r.Copy
Exit Sub
    End If
Next
End Sub
person Xavi    schedule 16.09.2019