Arrays 为什么即使类型似乎匹配,我仍会收到类型不匹配错误?

Arrays 为什么即使类型似乎匹配,我仍会收到类型不匹配错误?,arrays,vba,type-mismatch,Arrays,Vba,Type Mismatch,所以我写了一个程序,简单地说,接收一堆信息,对所说的信息进行一些移动,然后尝试将其中一个数组传递到另一个函数中,该函数进行一些数学运算 但是,这意味着当我尝试调用该函数(AllODES())时,存在类型不匹配。它说它需要一个数组 代码如下: Public Function DetermineVolume(x As Double, xmax As Double, Flows As Range, h As Double, error As Double, temp As Double, diamet

所以我写了一个程序,简单地说,接收一堆信息,对所说的信息进行一些移动,然后尝试将其中一个数组传递到另一个函数中,该函数进行一些数学运算

但是,这意味着当我尝试调用该函数(AllODES())时,存在类型不匹配。它说它需要一个数组

代码如下:

Public Function DetermineVolume(x As Double, xmax As Double, Flows As Range, h As Double, error As Double, temp As Double, diameter As Double, pressure As Double) As Double()

Dim i, j, m As Integer
Dim k(9, 9), Y5(9), Y4(9), Y4Old(9), ka(3), Kc(3), MW(7), rho(7) As Double
Dim delta0(9), delta1(9), delRatio(9) As Double, Rmin, FT, vol_F As Double

For i = 1 To 7                                                      'Moving the input data so it can acutally be used
    Y4(i) = Flows(i) 'mol/s
Next i

Y4(8) = pressure

                                                                            'k(Order #, equation #)
    For j = 1 To 6                                                          'First to 6th order


        For i = 1 To 7
            rho(0) = rho(0) + rho(i) * Y4(i)       'Calculate average density of mixture
            FT = FT + Y4(i)
            vol_F = vol_F + Y4(i) * MW(i) / rho(i)      'Calculating the total volumetric flowrate (m^3/s)
        Next i

        rho(0) = rho(0) / FT

        For i = 1 To 8                         'Calculating all of the k(1) values for eq 1 to 8
            k(j, i) = AllODES(x, Y4, i, j, k, h, temp, diameter, vol_F, rho(0)) 
        Next i 'CODE BUGS OUT HERE AND SAYS Y4 is a type mismatch
    Next j

DetermineVolume = Y4

End Function

Public Function AllODES(ByVal x As Double, Y() As Double, EqNumber As Integer, order As Integer, k() As Double, h As Double, _
 temp As Double, D As Double, vol_F As Double, rho As Double) As Double

'Some math operations are done in here

 AllODES=x

End Function
因此,我的问题如下:

Dim i As Integer, j As Integer, m As Integer
Dim k(9, 9) As Double, Y5(9) As Double, Y4(9) As Double, Y4Old(9) As Double, ka(3) As Double, Kc(3) As Double, MW(7) As Double, rho(7) As Double
Dim delta0(9) As Double, delta1(9) As Double, delRatio(9) As Double, Rmin As Double, FT As Double, vol_F As Double
是什么导致了此类型不匹配错误(因为我似乎正在为数组传入数组),以及如何修复此错误


提前谢谢

您之所以会收到错误,是因为您正在将
变量
数组传递给一个需要
双精度
数组的函数

您可能打算按如下方式对其进行尺寸标注:

Dim i As Integer, j As Integer, m As Integer
Dim k(9, 9) As Double, Y5(9) As Double, Y4(9) As Double, Y4Old(9) As Double, ka(3) As Double, Kc(3) As Double, MW(7) As Double, rho(7) As Double
Dim delta0(9) As Double, delta1(9) As Double, delRatio(9) As Double, Rmin As Double, FT As Double, vol_F As Double

之所以出现错误,是因为您正在将
变量
数组传递给一个需要
双精度
数组的函数

您可能打算按如下方式对其进行尺寸标注:

Dim i As Integer, j As Integer, m As Integer
Dim k(9, 9) As Double, Y5(9) As Double, Y4(9) As Double, Y4Old(9) As Double, ka(3) As Double, Kc(3) As Double, MW(7) As Double, rho(7) As Double
Dim delta0(9) As Double, delta1(9) As Double, delRatio(9) As Double, Rmin As Double, FT As Double, vol_F As Double