VBA更新数据系列forumla更改格式

我目前有一个意想不到的问题,我的代码。 假设dynamic更新图表对象的两个数据系列。 最近我又添加了一个系列(现在共有3个系列)。 数据系列正确更新,但问题是现在3系列的格式现在在每次更新发生时彼此交换。 这里是我的代码下面的更新发生:

Dim WrkSheet As String WrkSheet = Application.Worksheets(X).Name If Background > 0 Then 'Update the background data series Application.Worksheets(X).ChartObjects("Main Chart").Chart.SeriesCollection(2).Formula = _ "=SERIES(""Background"",('" & WrkSheet & "'!$J$32:$J$" & (32 + Background - 1) & ",'" & WrkSheet & "'!$J$" & BackgroundStart2 & ":$J$" & (BackgroundStart2 + Background - 1) & ")," _ & "('" & WrkSheet & "'!$K$32:$K$" & (32 + Background - 1) & ",'" & WrkSheet & "'!$K$" & BackgroundStart2 & ":$K$" & (BackgroundStart2 + Background - 1) & "),2)" Else 'Make the application not graph background in this scenario End If 'Update the Peak data series Application.Worksheets(X).ChartObjects("Main Chart").Chart.SeriesCollection(1).Formula = _ "=SERIES(""Peak"",'" & WrkSheet & "'!$J$" & (PeakStart1) & ":$J$" & PeakEnd1 & ",'" & WrkSheet & "'!$K$" & PeakStart1 & ":$K$" & PeakEnd1 & ",1)" 'Update the peak background data series Application.Worksheets(X).ChartObjects("Main Chart").Chart.SeriesCollection(3).Formula = _ "=SERIES(""Step Background"",'" & WrkSheet & "'!$J$" & (PeakStart1) & ":$J$" & PeakEnd1 & ",'" & WrkSheet & "'!$O$" & PeakStart1 & ":$O$" & PeakEnd1 & ",1)" 

一旦这段代码完成,3个系列集合对象中的每一个都会正确更新,但每个更改的关联格式都会更改。 我相信系列集合可能会被删除并重新创build删除格式,但我不确定为什么会这样。 任何帮助将是伟大的。

SERIES调用的最后一个参数是索引顺序。 你有两个1,第一个有一个2.他们可能会相互替代你走。 您应该按顺序(与SeriesCollection的位置相同)对其进行编号。

代码显示改变似乎是错误的最后一个公式。

 "=SERIES(""Step Background"",'" & WrkSheet & "'!$J$" & (PeakStart1) & ":$J$" & PeakEnd1 & ",'" & WrkSheet & "'!$O$" & PeakStart1 & ":$O$" & PeakEnd1 & ",3)" 

请注意,我将最后一行从1更改为3以匹配SeriesCollection(3)

SERIES公式的优秀参考。 http://peltiertech.com/Excel/ChartsHowTo/ChartSeriesFormula.html