Запускать макрос при смене слайсера - PullRequest
0 голосов
/ 21 ноября 2018

Я не могу заставить макрос запускаться автоматически при выборе элемента в слайсере (из диаграммы).Я попытался добавить код в частную подпрограмму или даже в публичную функцию, но все еще не могу получить щелчок / выделение элемента в слайсере для запуска макроса.Я протестировал sub Slicer_Opt, и он работает, когда у меня выбран элемент, и я запускаю его вручную, но, как я уже сказал, я не могу заставить его автоматически срабатывать при выборе элемента в слайсере.До сих пор у меня есть следующее:

Public Function ClickedSlicerItem(ByRef SlicerOpt1)
Call Slicer_Opt
End Function

Sub Slicer_Opt()

Dim LastMonth As String
Dim MiddleMonth As String
Dim FirstMonth As String
Dim Date1 As Date
Dim MonthMax As String
Dim MinMonth As Date
Dim SlicerMthCache As SlicerCache
Dim SlicerOpt1 As SlicerItem

Date1 = WorksheetFunction.Max(Sheets("Activity Log").Range("H:H"))
MinMonth = WorksheetFunction.Min(Sheets("Activity Log").Range("H:H"))
MonthMax = Month(Date1)
LastMonth = MonthName(MonthMax, True)
MiddleMonth = MonthName(MonthMax - 1, True)
FirstMonth = MonthName(MonthMax - 2, True)

If SlicerOpt1.ActiveItem Is Not Null Then 
    Application.ScreenUpdating = False
If ActiveWorkbook.SlicerCaches("Slicer_Last_Log_in").SlicerItems(LastMonth).Selected = True Then
        ActiveSheet.ChartObjects("Chart 2").Activate
        ActiveChart.ChartType = xlBarClustered
    ElseIf ActiveWorkbook.SlicerCaches("Slicer_Last_Log_in").SlicerItems(MiddleMonth).Selected = True Then
        ActiveSheet.ChartObjects("Chart 2").Activate
        ActiveChart.ChartType = xlBarClustered
    ElseIf ActiveWorkbook.SlicerCaches("Slicer_Last_Log_in").SlicerItems(FirstMonth).Selected = True Then
        ActiveSheet.ChartObjects("Chart 2").Activate
        ActiveChart.ChartType = xlBarClustered
    End If
    Application.ScreenUpdating = True
Else: ActiveChart.ChartType = xlBarStacked100
End If


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