我想将最后一点数据标签添加到某些选定的系列中。我有一个组合数字" line" "堆积区域"。我想只显示" line"的最后一个点数据标签。系列,但不是"堆积区域",如何在VBA中执行此操作?
我已经能够构建一个按钮单击宏来生成数据标签,但它会为所有系列生成数据标签(我不希望它为"堆积区域")。请参阅下面的代码。有人可以赐教我怎么办吗?我循环浏览图表的原因是因为我有两个图表。使用可能更新的名称范围绘制时间序列。
任何有用的评论都非常感谢!如果您需要进一步说明,我可以提供我的excel文件(它似乎没有给我选择在这里附上它)。
感谢。
Sub LastDataLables() Dim oChart As ChartObject Dim MySeries As Series For Each oChart In ActiveSheet.ChartObjects For Each MySeries In oChart.Chart.SeriesCollection 'Clear ExistingData Labels MySeries.ApplyDataLabels (xlDataLabelsShowNone) MySeries.Points(MySeries.Points.Count - 1).ApplyDataLabels With MySeries.DataLabels .Font.Size = 12 '.Position = xlLabelPositionRight .NumberFormat = "0.00%" End With Next MySeries Next oChart End Sub
答案 0 :(得分:1)
要实现此目的,请添加If
条件以检查If MySeries.Type = xlLine Then
。
完整代码 :
Option Explicit
Sub LastDataLables()
Dim oChart As ChartObject
Dim MySeries As Series
For Each oChart In ActiveSheet.ChartObjects
For Each MySeries In oChart.Chart.SeriesCollection
If MySeries.Type = xlLine Then ' <-- check if series type is xlline
'Clear ExistingData Labels
MySeries.ApplyDataLabels (xlDataLabelsShowNone)
MySeries.Points(MySeries.Points.Count - 1).ApplyDataLabels
With MySeries.DataLabels
.Font.Size = 12
'.Position = xlLabelPositionRight
.NumberFormat = "0.00%"
End With
End If
Next MySeries
Next oChart
End Sub