用行在XY散点上居中放置数据标签

时间:2018-08-26 10:20:33

标签: vba charts alignment

我正在创建以下图表: enter image description here

但是我需要每个数据标签都位于要创建的直线上的中心,而不是直线的终点。我有以下内容:

    Set mypts = mysrs.Points
    mypts(mypts.Count).ApplyDataLabels

        With mypts(mypts.Count).DataLabel
            .ShowSeriesName = True
            .ShowCategoryName = False
            .ShowValue = False
            ' optional parameters
            .Orientation = 0
            .Position = xlLabelPositionAbove
            .Font.Size = 10
            .Font.Bold = True
        End With

有人知道如何居中数据标签吗?我通过给每个系列起一个名字来给它命名?

1 个答案:

答案 0 :(得分:0)

在每行上方放置一个标签居中将涉及创建另一个数据系列,以计算该行的中心。在无法访问您的数据的情况下,我转向了@JonPeltier出色的post on connecting two XY data series

您的问题涉及您的自定义VBA代码。我的示例应作为设置数据所需的步骤。您可以选择在工作表上设置数据,也可以让VBA代码创建此“额外”数据系列以添加到图表中(再次,因为我不知道您的数据是什么样,我不建议这样做一种针对您问题的解决方案)。

我不会重复创建图表的所有详细信息,但这是数据和结果图表的示例:

enter image description here

enter image description here

现在,设置中点数据并不困难。中间点是快速公式=((D2-A2)/2)+A2,复制到该列中。

添加到图表中,选择“ MidPoint”和“ Value”列,然后 cntl + c 复制数据,然后选择图表并“选择性粘贴”为一个新的数据系列。

enter image description here

  

A快速说明:请勿将中点数据与A和B数据放在同一行。我最初是这样做的,然后Excel(以自己的个人智慧)将数据与A列相关联。图表上的结果不太好。

下一步是选择新的数据系列,然后选择“添加数据标签”,然后选中“来自单元格的值”框。选择标签的数据范围,例如单元格C17:C20

enter image description here

最后,格式化标签以仅显示“来自单元格的值”(取消选中“ Y”数据标签)并将标记设置为“无”。然后,您就获得了行的居中标签。

enter image description here