VBA循环遍历所有图表中的所有系列

Mag*_*ism 4 excel charts vba excel-vba

我在我的VBA代码中循环几个图表时遇到了问题.我99.7%肯定这是一个非常容易和快速的解决方案,但我的大脑今天不工作.

我希望代码循环遍历ActiveSheet上的每个图表,并且对于图表包含的每个数据系列,我希望它添加系列的最后一个值.在我的例子中,我有9个图表,每个图表有3个系列(必然会改变,有些有2个,但我离题了).

我有以下代码

Sub AddLastValue()
Dim myChartObject As ChartObject
Dim myChart As Chart
Dim mySrs As Series
Dim myPts As Points

With ActiveSheet
For Each myChartObject In .ChartObjects
    For Each myChart In .Chart
        For Each mySrs In .SeriesCollection
            Set myPts = .Points
            myPts(myPts.Count).ApplyDataLabels Type:=xlShowValue
        Next
    Next
Next
End With

End Sub
Run Code Online (Sandbox Code Playgroud)

如果我删除循环代码,只是做一个

Set myPts = ActiveSheet.ChartObjects(1).Chart. _
    SeriesCollection(1).Points
myPts(myPts.Count).ApplyDataLabels type:=xlShowValue
Run Code Online (Sandbox Code Playgroud)

然后它适用于特定的图表和系列,所以我很肯定这是我正在弄乱的循环.

有人能告诉我在哪里弄乱了循环代码吗?

Dmi*_*liv 14

请尝试以下代码:

Sub AddLastValue()
    Dim myChartObject As ChartObject
    Dim mySrs As Series
    Dim myPts As Points

    With ActiveSheet
        For Each myChartObject In .ChartObjects
            For Each mySrs In myChartObject.Chart.SeriesCollection
                Set myPts = mySrs.Points
                myPts(myPts.Count).ApplyDataLabels Type:=xlShowValue
            Next
        Next
    End With

End Sub
Run Code Online (Sandbox Code Playgroud)