我只想将数据标签添加到我的折线图上的最后一点,目前我正在使用下面的,它工作正常,但前提是我知道最后一点是什么数字。
我做了很多搜索并在 excel 帮助中找到了 points(points.count) 对象,但我似乎无法让它对我有用。
请您建议一种仅在我的图表上显示最后一点或(理想情况下)在工作表上显示所有图表的方法。
Sub Data_Labels()
'
' Data_Labels Macro
ActiveSheet.ChartObjects("Menck Chart").Activate
ActiveChart.SeriesCollection(1).DataLabels.Select
Selection.Delete
ActiveSheet.ChartObjects("Menck Chart").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Points(59).Select
ActiveChart.SeriesCollection(1).Points(59).ApplyDataLabels
ActiveChart.SeriesCollection(1).DataLabels.Select
Selection.Format.TextFrame2.TextRange.Font.Size = 9
End Sub
最佳答案
简短回答
Dim NumPoints as Long
NumPoints = ActiveChart.SeriesCollection(1).Count
ActiveChart.SeriesCollection(1).Points(NumPoints).ApplyDataLabels
长答案
使用
ActiveChart
是模糊的,需要额外的步骤来选择感兴趣的图表。如果您明确指定您感兴趣的图表,您的宏将更加健壮且更易于阅读。我还建议使用 With
block ,或创建中间变量,因为读取 ActiveChart.SeriesCollection(1).Points
一遍又一遍是痛苦的,并且会使您的代码困惑。尝试后一种方法如下: Dim chartMenck As Chart, menckPoints as Points, menckDataLabel as DataLabel
Set chartMenck = Sheet1.ChartObjects("Menck Chart").Chart
Set menckPoints = chartMenck SeriesCollection(1).Points
menckPoints(menckPoints.Count).ApplyDataLabels
Set menckDataLabel = menckPoints(menckPoints.Count).DataLabel
menckDataLabel.Font.Size = 9
在我看来,这几乎是原版的一半,而且更容易阅读。
关于Excel VBA图表,仅在最后一点显示数据标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23632152/