我有一个折线图,我试图通过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轴上?
答案 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