Vba 类型不匹配:应为数组或用户定义的类型,试图将数组传递给子对象

Vba 类型不匹配:应为数组或用户定义的类型,试图将数组传递给子对象,vba,excel,Vba,Excel,我有一个数组和一个我尝试使用的displayArraysub。然而,我得到了一份工作 类型不匹配:数组或用户定义的类型预期错误 主要分包: Dim someArray() As Double someArray = getBinsArray(sumLossesColl) displayArray (someArray) displayArraysub: Sub displayArray(someArray() As Double) Dim i As Long With Th

我有一个数组和一个我尝试使用的
displayArray
sub。然而,我得到了一份工作

类型不匹配:数组或用户定义的类型预期错误

主要分包:

Dim someArray() As Double
someArray = getBinsArray(sumLossesColl)
displayArray (someArray)
displayArray
sub:

Sub displayArray(someArray() As Double)
    Dim i As Long


    With ThisWorkbook.Worksheets("Sheet1")
        .Range(.Cells(1, 1), .Cells(1, UBound(someArray) - LBound(someArray))).value = someArray
    End With
End Sub
“getBinsArray”函数:

Function getBinsArray(dataArray() As Double)
    Dim binsNumber As Long
    Dim binSize As Double

    binsNumber = Round(VBA.Sqr(UBound(dataArray) - LBound(dataArray)) + 0.5)
    MsgBox ("binsNumber: " & binsNumber)

    binSize = (getMaxValue(dataArray) - getMinValue(dataArray)) / (binsNumber - 1)

    Dim resultArray() As Double
    ReDim resultArray(1 To bindsNumber) As Double
    resultArray(1) = getMinValue(dataArray)

    Dim i As Long
    For i = 2 To binsNumber
        resultArray(i) = resultArray(i - 1) + binSize
    Next


    getBinsArray = resultArray
End Function

这背后的原因是什么?类型是双重的,似乎一切都很好。如何修复它?

将调用
displayArray
更改为以下两种方式之一:

call displayArray (someArray)
displayArray someArray
因此,要么使用“Call”并将参数放在括号中,要么省略括号。关于使用哪种版本的讨论层出不穷,但最终还是口味的问题