LinEst功能

时间:2014-07-03 11:01:26

标签: excel vba excel-vba

我正在尝试在Excel 2010中自学一些基本的VBA,而且我遇到了一个我不能谷歌自己的问题。目标是创建一个按钮,按下时,自动为我做直线并将值写入数组。到目前为止,这是我的代码。

Private Sub CommandButton1_Click()
    Dim linest As Variant
    Dim linestArray(4,1) as Variant
    Dim i As Integer, j as Integer

    linest = Application.LinEst(Range("U49:U51"), Range("T49:T51"), True, True)

    For i = 0 To 4
       linestArray(i,0) = accessing values of linest variable fyrst column
       Cells(68 + i, 21) = linestArray(i,0)
    Next

    For j = 0 To 4
       linestArray(j,1) = accessing values of linest variable second column
       Cells(68 + j, 22) = linestArray(j,0)
    Next

End Sub

如何访问变量linest的值,以便将它们存储到数组并打印出来?谢谢。

编辑:我明白了。变量linest已经是一个数组!我觉得很傻。对不起,这可以忽略。

新代码:

    Dim linestArray As Variant
    linestArray = Application.LinEst(Range("U49:U51"), Range("T49:T51"), True, True)
    For i = 0 To 4
        For j = 0 To 1
            Cells(68 + i, 21 + j) = linestArray(i + 1, j + 1)
        Next
    Next

1 个答案:

答案 0 :(得分:1)

任何此类公式的输出都是Variant数组。所以你已经掌握了这一部分。

对于这些Application.的一般方法(使用WorksheetFunction.代替它,它的速度要快得多)类型函数是......

  1. 在Excel中键入函数(作为数组公式,Ctrl-Shift-Return,如果需要)
  2. 对于大多数情况,输出是某种N×M矩阵(N = 1,M = 1)
  3. 当您执行Var = Application.Linest(xyx)时,答案将存储在Var
  4. 使用VarUbound(Var, 1)获取Ubound(Var, 2)的大小以获取行数和列数(请注意这些是基本0类型数组)
  5. 通常,尺寸为one x one。在这种情况下,您的变量存储在Var(0,0)中,即零基多维变体数组,左上角元素。
  6. 希望这有帮助。