将数组作为parameter passing给VBA函数

我有一个用户自定义Excell工作表函数(线性),从一个X的数组插入,并在一个定义的X1值的Y值的数组,工作正常。 我试图在另一个函数(下面的示例代码中的NPL)中使用它,将其设置为VBA模块中的私有静态函数,然后使用该函数内创build的数据数组调用该函数。 当我在电子表格中使用这个时,我得到一个#VALUE错误。 任何想法我做错了什么?

示例代码:

Function NPL(Length, Beam) A = Array(1, 2, 3, 4) B = Array(2, 4, 6, 8) C = Linear(A, B, 1.5) NPL = C End Function Private Static Function Linear(X, Y, X1) N = 0 I = 1 Do N = I I = I + 1 Loop Until X(I) < X(I - 1) Or N = X.Count A = 0 I = 0 Do I = I + 1 Loop Until X(I) > X1 Or I > N - 1 If X1 < X(N) And X1 > X(1) Then Linear = Y(I - 1) + (X1 - X(I - 1)) * (Y(I) - Y(I - 1)) / (X(I) - X(I - 1)) ElseIf X1 > X(N) Or X1 = X(N) Then Linear = Y(N) Else Linear = Y(1) End If End Function 

replace你的

 Do N = I I = I + 1 Loop Until X(I) < X(I - 1) Or N = X.Count 

 Do N = I I = I + 1 Loop Until X(I) < X(I - 1) Or N = UBound(X) - LBound(X) + 1 

这应该适用于任何一维数组。