【问题标题】:I'm trying to make a cumulative distribution chart in VBA我正在尝试在 VBA 中制作累积分布图
【发布时间】:2015-08-11 21:05:09
【问题描述】:

第一次海报。为了制作这个累积分布图,我制作了一个直线 xy 散点图。 y 轴值是百分位数,所有这些值都在 A2:A100 中。相应的 x 值在 B 到 n 列中。 n 是可变的,因为它取决于用户为创建图表指定了多少模拟策略。我需要 VBA 代码来创建一个 xy 散点图,其中 A2:A100 是位于相邻列中的所有 x 值系列的 y 值。一个命名单元,cumulativeColumns 计算具有 x 值的列数。基于我对 SeriesCollections 似乎如何工作的研究,我的第一个想法是使用 Do Until 循环,该循环将根据累积列公式的结果停止。我认为这段代码会起作用:

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 列中的数据,等等,直到根据累积列值的结果没有更多包含数据的列时它停止。但我收到错误 1004,应用程序定义或对象定义错误。

【问题讨论】:

  • 亚当,欢迎来到 SO! :) 请使用the tour 来赢得您的第一个闪亮徽章;)

标签: vba excel cumulative-frequency


【解决方案1】:

测试:

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

【讨论】:

  • 优秀。效果比我想象的要好。
猜你喜欢
  • 2011-03-10
  • 2014-11-20
  • 2013-03-02
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 2015-10-16
  • 2020-03-19
相关资源
最近更新 更多