0

你好,那里的好心人。

我想从我编写的函数中绘制一些数据。我的函数调用了一个数组和几个单元格。然后它执行一些计算。我想沿 x 轴绘制日期,沿 y 轴绘制我的数据。两者都将是“双倍”。

我找不到有关 SetSourceData Source:= NOT BEING FROM A RANGE OF CELLS 的信息,而是从函数内执行的计算中找到的信息。

我想在我的折线图中输入两个数组。

为了解决这个问题,我认为我可以将两个列数组返回到 Excel 中(不理想,但如果它有效,我很高兴)。这是我返回日期(以年为单位)的尝试。在我的电子表格中,我突出显示单元格 A1:A1001 并键入“=Arr()”并按 shift+ctrl+enter。它用 1946(第一年)重复填充单元格 A1:A1001。

再次感谢大家。我会保持手指交叉的:o)

Function Arr() As Variant
    Dim q() As Double
    ReDim q(1 To 1001)
    q(1) = 0

    Dim dq As Double
    dq = 0.001
    For G = 2 To 1001
        q(G) = q(G - 1) + dq
    Next G

    Dim DTE() As Variant
    ReDim DTE(1 To 1, 1 To 1001)

    For k = 1 To 1001
        DTE(1, k) = (q(k) * 64) + 1946
    Next k

    Arr = DTE

End Function
4

1 回答 1

0

这不是对您直接问题的回答,而是对您绘制除范围以外的数据图表的愿望。

您可以将数组分配给Chart.SeriesCollection(#).Values属性

为了演示,在调用的活动表上放置一个图表Chart 1并运行此代码

Sub zx()
    Dim ch As Chart

    Set ch = ActiveSheet.ChartObjects("Chart 1").Chart
    ch.SeriesCollection(1).Values = Array(1, 3, 5, 7, 11, 13, 17, 19)
    ch.SeriesCollection(1).XValues = Array(5#, 6.3, 12.6, 28, 50)

End Sub
于 2012-05-17T06:21:15.763 回答