在选定的图表上运行宏

在选定的图表上运行宏

我想在电子表格中的图表中添加一些快速选项,我想选择一个图表,选择/取消选择一个复选框,然后代码运行。

勾选框代码是;

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

相关内容