由于我对VBA中的Chart对象一点都不熟悉,所以一直困扰着我几个小时的问题一直困扰着我。
这是我的图表:
我要做什么::更改两个轴的数据范围,问题是无法找出一种编辑图表序列的方法。
感谢您的四项帮助!
答案 0 :(得分:0)
您可以使用
With Workbooks(bookname).Charts(Chartname)
.SeriesCollection.NewSeries
.SeriesCollection(i).XValues = YourXs
.SeriesCollection(i).values = YourYs
end with
您可以使用索引i选择要编辑的系列。实际上,这会设置(X,Y)配对,而下面的内容只会更改图表所示的范围。
要更改Y轴的边界,可以使用
.Axes(xlValue).MinimumScale =
.Axes(xlValue).MaximumScale =
要更改x轴的边界,请使用
.Axes(xlCategory).MinimumScale =
.Axes(xlCategory).MaximumScale =
答案 1 :(得分:0)
您说过要更改
= SERIES(“ SO2 U5”,'CEMS_U6_YTD 2018'!$ B $ 2165:$ B $ 2303,'CEMS_U5_YTD 2018'!$ D $ 2165:$ D $ 2312,1)
对此
= SERIES(“ SO2 U5”,'CEMS_U6_YTD 2018'!$ C $ 2165:$ C $ 2303,'CEMS_U5_YTD 2018'!$ D $ 2165:$ D $ 2312,1)
这可能很简单
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES(""SO2 U5"",'CEMS_U6_YTD 2018'!$C$2165:$C$2303,'CEMS_U5_YTD 2018'!$D$2165:$D$2312,1)"
请注意将序列名称的双引号加倍。
但是,由于仅更改X值,因此可以使用以下方法:
ActiveChart.SeriesCollection(1).XValues = "='CEMS_U6_YTD 2018'!$C$2165:$C$2303"
或
ActiveChart.SeriesCollection(1).XValues = Worksheets("CEMS_U6_YTD 2018").Range("$C$2165:$C$2303")
我已经写了一个有关使用VBA编辑系列公式的教程:Change Series Formula – Improved Routines。