第一次发表海报。为了制作这个累积的迪斯特图,我做了一个直线的xy散点图。 y轴值是百分位数,所有这些都在A2:A100中。相应的x值在列B到n中。 n是可变的,因为它取决于用户为图表创建指定了多少模拟策略。我需要VBA代码来创建xy散点图,其中A2:A100是位于相邻列中的所有x值系列的y值。一个命名单元格,cumulativeColumns计算具有x值的数字列。基于我对SeriesCollections似乎如何工作的研究,我的第一个想法是使用Do Until循环,它将根据cumulativeColumns公式的结果停止。我认为这段代码可行:
q = 1
Do Until q = Range("cumulativeColumns").Value
ActiveChart.SeriesCollection(q).XValues = _
"=Range(Cells(2,q+1), Cells(100,q+1))"
ActiveChart.SeriesCollection(q).Values = _
"=Range(Cells(2,1), Cells(100,1))"
q = q + 1
Loop
第一次通过循环q = 1,因此第一个系列将获得Col B数据。第二次通过循环q = 2所以我想第二个系列将被定义并获得C列中的数据等,直到它停止时没有更多的列包含每个cumulativeColumns.Value的结果的数据。但是我收到错误1004,应用程序定义或对象定义错误。
答案 0 :(得分:0)
测试:
q = 1
Do Until q = Range("cumulativeColumns").Value
With ActiveChart.SeriesCollection.NewSeries
.XValues = Range(Cells(2, q + 1), Cells(100, q + 1))
.Values = Range(Cells(2, 1), Cells(100, 1))
q = q + 1
End With
Loop