将文本框附加到Excel/VBA中图表上的点或线

han*_*sta 5 excel vba textbox excel-vba

我想知道如何将文本框附加到我正在处理的宏的Excel图表中的点或线.我一直在用这样的.AddTextbox方法

.Shapes.AddTextbox(msoTextOrientationHorizontal, 150, 250, 100, 15) _
      .TextFrame.Characters.Text = "Temperature"
Run Code Online (Sandbox Code Playgroud)

但是我必须手动将文本框拖动到它所代表的图表上的线上,因为图表的方向不是线.有没有办法将线/点转换为图表方向,我可以将其用作变量?或另一种方式?可能使用datalabel函数,但我希望能够自定义其中一个轴位置.谢谢

Kaz*_*wor 4

要解决您的问题,您需要获取两个对象的左侧和顶部位置:

  1. 图表本身,相对于工作表范围区域的左上角设置的位置
  2. 系列中的点,其位置相对于图表的左上角设置

将两个结果与以下代码相结合(固定参数需要根据您的情况进行更改,可以通过循环变得更加动态)

Sub Add_Text_to_point()

    Dim tmpCHR As ChartObject
    Set tmpCHR = Sheet1.ChartObjects(1) 'put index of your chartobject here

    'for first serie, for point 2nd here
    '(change accordingly to what you need)
    With tmpCHR.Chart.SeriesCollection(1).Points(2)

        Sheet1.Shapes.AddTextbox(msoTextOrientationHorizontal, _
                .Left + tmpCHR.Left, _
                .Top + tmpCHR.Top, _
                100, 15) _
                .TextFrame.Characters.Text = "Temperature"
    End With

End Sub
Run Code Online (Sandbox Code Playgroud)

结果如下图所示。

在此输入图像描述