使用VBA将图表系列放在辅X轴上

时间:2013-01-13 10:26:52

标签: excel vba excel-vba

我有一个折线图,我试图通过VBA添加给定Y值的水平线。我正在关注this guide,它建议在现有图表中添加一行,然后将其类型更改为分散,这会导致Excel自动将系列放在辅X轴上。然后可以进一步格式化。

我的问题是,当使用VBA执行此操作时,我不明白如何将线切换到辅助X轴。默认情况下,所有新行都将位于主X轴上。

例如,假设chrt是Chart对象:

' Enable secondary X axis (I think)
chrt.HasAxis(XlAxisType.xlCategory, XlAxisGroup.xlSecondary) = True

Dim se As Series
Set se = chrt.SeriesCollection.NewSeries
se.ChartType = xlXYScatterLinesNoMarkers

' Add a line at Y = 0
se.xValues = Array(0, 1)
se.values = Array(0, 0)

现在,如何将se放到辅X轴上?

1 个答案:

答案 0 :(得分:10)

我跟着这个link for Excel 2003并录制了一个宏。请注意,对于Excel 2007,图表有一个记录宏的不幸情况。但是你再次在Excel 2010中幸运。因此,如果要基于宏执行此操作,请注意您的版本,然后复制代码...

根据您的要求更改工作表和图表名称。

With Sheets(3).ChartObjects("Chart 1")
     .SeriesCollection(2).AxisGroup = xlSecondary
     .HasAxis(xlCategory, xlPrimary) = True
     .HasAxis(xlCategory, xlSecondary) = True
     .HasAxis(xlValue, xlPrimary) = True
     .HasAxis(xlValue, xlSecondary) = True
     .Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
     .Axes(xlCategory, xlSecondary).CategoryType = xlAutomatic
  End With