Запустить макрос на выбранном графике

Запустить макрос на выбранном графике

Я хочу добавить несколько быстрых опций к диаграммам в электронной таблице. Я хочу выбрать диаграмму, установить/снять отметку в поле, и код запустится.

Коды флажков:

Private Sub CheckBox1_Click()

    If CheckBox1.Value = True Then
        DisplayLabels    
    Else    
        HideLabels   
    End If

End Sub

Код DisplayLabels и HideLabels — это

Sub DisplayLabels()

    With ActiveChart
        ActiveChart.FullSeriesCollection(1).Select
        ActiveChart.FullSeriesCollection(1).ApplyDataLabels
    End With

End Sub

Sub HideLabels()

    With ActiveChart
        ActiveSheet.ChartObjects("Basic_Chart").Activate
        ActiveChart.FullSeriesCollection(1).Select
        ActiveChart.FullSeriesCollection(1).DataLabels.Select
        Selection.ShowValue = False
    End With

End Sub

Проблема в том, что как только я ставлю галочку, диаграмма больше не выбрана/не активна, и поэтому код не может работать. Есть ли способ обойти это? Я хочу, чтобы это был повторно используемый код на нескольких листах, поэтому не могу напрямую ссылаться на диаграмму.

решение1

Забудьте о галочке, пусть макрос определит, есть ли метки или нет. Следующий код проверит, выбрана ли диаграмма, и если да, переключит метки:

If ActiveChart Is Nothing Then
    MsgBox "You must select a chart"
    Exit Sub
End If
For Each mySeries In ActiveChart.SeriesCollection
    On Error Resume Next
    mySeries.DataLabels.Select
    If (Err.Number = 0) Then
        mySeries.DataLabels.Delete
    Else
        mySeries.ApplyDataLabels
    End If
    On Error GoTo 0
Next mySeries

Связанный контент