有没有办法将标注标签添加到图表中的某个点,而不使用select?

eir*_*ude 6 excel charts vba excel-vba

有没有办法将标注标签添加到图表中的某个点,而不使用Select

录制宏,我得到了这个:

Sub Macro9()
    ActiveSheet.ChartObjects("SPC").Activate
    ActiveChart.FullSeriesCollection(1).Select
    ActiveChart.FullSeriesCollection(1).Points(4).Select
    ActiveChart.SetElement (msoElementDataLabelCallout)
End Sub
Run Code Online (Sandbox Code Playgroud)

但我宁愿避免使用Select.我尝试SetElement在点上使用-method,但失败了.使用HasDataLabel = True-method只需添加一个数据标签.

是否有任何解决方法来选择点然后SetElement在图表上使用,或者我是否必须满足于类似上述宏的东西?

Sid*_*out 8

这是你在尝试什么?在下面的代码中我们完全避免.Activate/.Select:)

随意玩.AutoShapeType房产.您还可以格式化数据标签,以便以您想要的任何格式显示值.

Sub Sample()
    Dim objC As ChartObject, chrt As Chart, dl As DataLabel
    Dim p As Point

    Set objC = Sheet1.ChartObjects(1)
    Set chrt = objC.Chart
    Set p = chrt.FullSeriesCollection(1).Points(4)

    p.HasDataLabel = True

    Set dl = p.DataLabel

    With dl
        .Position = xlLabelPositionOutsideEnd
        .Format.AutoShapeType = msoShapeRectangularCallout
        .Format.Line.Visible = msoTrue
    End With
End Sub
Run Code Online (Sandbox Code Playgroud)

截图

在此输入图像描述


小智 0

尝试下面的代码

Sub Macro9()
    ActiveSheet.ChartObjects("SPC").Activate
    ActiveChart.SeriesCollection(1).Points(4).HasDataLabel = True
    ActiveChart.SeriesCollection(1).Points(4).DataLabel.Text = "Point 4 Test"
End Sub
Run Code Online (Sandbox Code Playgroud)