我正在尝试在VBA中制作累积分布图

时间:2015-08-11 21:05:10

标签: vba excel-vba cumulative-frequency excel

第一次发表海报。为了制作这个累积的迪斯特图,我做了一个直线的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,应用程序定义或对象定义错误。

1 个答案:

答案 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