根据 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。
好处是它是动态的。如果数据发生变化,标签会更新,而无需重新添加标签并重新运行任何代码。
我有一个包含 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。
好处是它是动态的。如果数据发生变化,标签会更新,而无需重新添加标签并重新运行任何代码。