我有一个数组和一个我试图使用的displayArray
子。但是,我得到了一个
类型不匹配:数组或用户定义类型预期错误
主要分:
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
这背后的原因是什么?类型是Double
,一切似乎都很好。如何解决?
答案 0 :(得分:1)
更改为使用以下两种方式之一调用displayArray
:
call displayArray (someArray)
displayArray someArray
因此要么使用'Call'并将参数放在括号中,要么省略括号。有无穷无尽的讨论使用哪个版本,但最后这是一个品味问题。