有没有办法通过VBA调整Excel图表中的LegendEntries(系列)的顺序?

我正在做一个Excel图表自动化。 当我尝试向上移动一个LegendEntry(Series)对象时,我无法从MS站点find任何相关的API方法。 手动方式如下:select图表>右键单击> select数据… >select一个LegendEntry >单击button上 。 我怎样才能做到这一点的VBA? 先谢谢你。

这是另一种方式

Sub Sample() Dim ws As Worksheet Dim objChrt As ChartObject Dim chrt As Chart Set ws = ActiveSheet Set objchart = ws.ChartObjects(1) Set chrt = objchart.Chart chrt.FullSeriesCollection(2).PlotOrder = 1 End Sub 

截图 在这里输入图像说明

图例input顺序与系列顺序相同。 我不确定这是否暴露在对象模型中。 您可以更改系列公式中最后一个参数的编号,以重新排列系列和图例条目。

 ActiveSheet.ChartObjects("Chart 1").Activate Debug.Print ActiveChart.FullSeriesCollection(1).Formula 

这会让你有点像

 =SERIES(Sheet1!$B$6,,Sheet1!$C$6,1) 

1作为最后一个参数意味着它是图表中的第一个系列,因此也是图例。 更改该参数将图例条目移动到不同的位置。