从函数返回数组或使用函数(非单元格)中的数据来绘制线图

时间:2012-05-17 00:13:28

标签: excel-vba vba excel

你好,那里的好心人。

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

我找不到有关SetSourceData Source的信息:=不是来自一系列细胞,而是来自函数内执行的计算。

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

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

再次感谢你们。我会保持手指交叉: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

1 个答案:

答案 0 :(得分: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