根据 X 值向图表添加数据标签

Adding Data Label To Chart Based On X Values

我有一个包含 xvalues 绿色、蓝色和红色的图表,我只想将数据标签添加到红色值。但是颜色并不总是以相同的顺序排列,所以我不能使用类似的东西:Chart.SeriesCollection(n).Points(j).DataLabel.Delete

我希望能够做这样的事情:If Chart.SeriesCollection(n).Points(j).DataLabel.XValues = "Red" Then Chart.SeriesCollection(n).Points(j).DataLabel.Delete

但是 vba 中的 .XValues 命令不是那样工作的。有什么建议么?提前致谢。

在您的描述中,您说要将数据标签添加到红色 XValue,但您的代码却删除了它们。因此,我假设您要删除红色 XValue 的数据标签。相应地更改图表参考。

Dim sr As Series
Dim n As Long
Dim j As Long

With Worksheets("Sheet1").ChartObjects("Chart 1").Chart
    For n = 1 To .SeriesCollection.Count
        Set sr = .SeriesCollection(n)
        sr.HasDataLabels = True
        For j = 1 To sr.Points.Count
            If sr.XValues()(j) = "Red" Then
                sr.Points(j).DataLabel.Delete
            End If
        Next j
    Next n
End With

不需要VBA。

这是我的设置。类别,可能包括 A 列中的“红色”、B 列中的值和 C 列中的图表标签。在单元格 C2 中,我使用的公式如下:

=IF(A2="Red","Label Text Here","")

因此,如果 X 值为“红色”,则该列中只有文本。

我的图表绘制了数据范围的 A 列和 B 列。我添加了数据标签,然后格式化数据标签以使用单元格中的值,并为带有标签的单元格选择 C2:C7。

好处是它是动态的。如果数据发生变化,标签会更新,而无需重新添加标签并重新运行任何代码。