在VBA中将数组从一个函数传递到另一个函数

时间:2013-10-31 08:52:04

标签: arrays excel excel-vba vba

我有一个生成两个数组的函数(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

1 个答案:

答案 0 :(得分:0)

几个小问题:

  1. X Y 在函数标头中声明为Ranges,但通过使用 Ubound()
  2. 该函数计算 B ,但从不公开它。您是否打算将 BETA=B 作为回复?
  3. BETA 应在函数标题中声明为Double而不是Variant。
  4. 你真的打算修改函数体内的函数输入吗?