VBA:在带有系列和堆叠区域的组合图中自动标记选定系列的最后一个数据点

VBA:在带有系列和堆叠区域的组合图中自动标记选定系列的最后一个数据点,vba,excel,Vba,Excel,我想将最后一个点数据标签添加到某些选定的系列。我有一个带有“线”和“堆积面积”的组合图。我只想显示“直线”系列的最后一个点数据标签,而不是“堆叠区域”,如何在VBA中执行此操作 我已经能够构建一个按钮单击宏来生成数据标签,但它将为所有系列生成数据标签(我不希望它用于“堆叠区域”)。请参阅下面的代码。有人能告诉我怎么做吗?我之所以循环浏览图表是因为我有两个图表。时间序列使用可能更新的名称范围绘制 非常感谢任何有用的评论!如果您需要进一步的澄清,我可以提供我的excel文件(它似乎没有给我选择附加在

我想将最后一个点数据标签添加到某些选定的系列。我有一个带有“线”和“堆积面积”的组合图。我只想显示“直线”系列的最后一个点数据标签,而不是“堆叠区域”,如何在VBA中执行此操作

我已经能够构建一个按钮单击宏来生成数据标签,但它将为所有系列生成数据标签(我不希望它用于“堆叠区域”)。请参阅下面的代码。有人能告诉我怎么做吗?我之所以循环浏览图表是因为我有两个图表。时间序列使用可能更新的名称范围绘制

非常感谢任何有用的评论!如果您需要进一步的澄清,我可以提供我的excel文件(它似乎没有给我选择附加在这里)

谢谢


要实现这一点,请添加一个
If
标准来检查
If MySeries.Type=xlLine,然后

完整代码

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
选项显式
子LastDataLables()
暗赭石作为图表对象
Dim MySeries As系列
对于ActiveSheet.ChartObjects中的每个oChart
对于oChart.Chart.SeriesCollection中的每个MySeries

如果MySeries.Type=xlLine,那么“请参阅下面的答案和代码谢谢!那有帮助!
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