0

我有一个生成两个数组(XY)的函数。

我想通过将这个数组传递给另一个函数来对这个函数内的两个数组进行一些计算BETA。这两个功能都可以自行完美运行。我不知道如何将数组正确传递给函数BETA。下面是内部函数的代码:

Function BETA(ByRef X As Range, ByRef Y As Range) As Variant

    Dim i As Long
    Dim B As Double
    Dim X_SUM As Double, Y_SUM As Double
    Dim X_MEAN As Double, Y_MEAN As Double

    X_MEAN = Application.WorksheetFunction.Average(X)
    Y_MEAN = Application.WorksheetFunction.Average(Y)


    For i = 1 To UBound(X)

      X(i) = X(i) - X_MEAN
      Y(i) = Y(i) - Y_MEAN

    Next i

    X_SUM = WorksheetFunction.Sum(X)
    Y_SUM = WorksheetFunction.Sum(Y)

    B = (X_SUM * Y_SUM) / (X_SUM) ^ 2


    BETA = B                    
End Function
4

1 回答 1

0

几个小点:

  1. XY在函数头中声明为 Ranges,但通过使用Ubound()在函数体中用作数组
  2. 该函数计算B,但从不公开它。你打算BETA=B作为回报吗?
  3. BETA应该在函数头中声明为 Double 而不是 Variant。
  4. 你真的打算修改函数体内的函数输入吗?
于 2013-10-31T10:39:47.990 回答