Arrays 在VBA中将数组从一个函数传递到另一个函数
我有一个函数可以生成两个数组(Arrays 在VBA中将数组从一个函数传递到另一个函数,arrays,excel,vba,Arrays,Excel,Vba,我有一个函数可以生成两个数组(X和Y) 我想通过将此数组传递给另一个函数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 D
X
和Y
)
我想通过将此数组传递给另一个函数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
有几个要点:
BETA=B
作为回报我没有看到数组?你的意思是通过一个范围吗?如果你想从一个函数返回一个对象,你需要在返回时使用
Set
关键字。所以Set BETA=X_SUM
试试看你到底遇到了什么问题?有什么错误吗?如果是这样的话,它们是什么?我是VBA新手,因此非常抱歉表达错误。。。我打算BETA=B,sry。函数BETA用于生成X和Y的另一个函数中,其中X和Y是具有多个条目的双倍数,例如X=(X1、X2、X3,…)。我确实打算使用X和Y作为计算BETA=B的输入。我不想修改X和Y。对于任何混淆,我是sry