Application.Worksheetfunction.Max 不是 return 数组中最大的数
Application.Worksheetfunction.Max does not return the largest number in array
我有一个数组,其中包含各种双精度值,当我使用 Application.WorksheetFunction.max
函数时,我收到一个值,但当我查看数组的各个值时,我可以找到多个大于该值的值Application.WorksheetFunction.max
返回。从直接 window:
复制
?Application.WorksheetFunction.max(dummyQuantileVector)
21081,4351851852
?dummyQuantileVector(73368)
799470,509259259
这可能是什么原因?
更新:当我将整个 dummyQuantileVector 数组写入 sheet 然后使用 max 函数时,我得到了正确的值。
WorksheetFunction.Max
似乎只适用于一维数组的前 34465 个元素。它将在二维数组上正常工作。
自定义最大值函数
Function getMaxNumberFromArray(Data As Variant)
Dim v As Variant
Dim n As Double
Dim flag As Boolean
For Each v In Data
If Not flag Then
n = v
flag = True
ElseIf v > n Then
n = v
End If
Next
getMaxNumberFromArray = n
End Function
我有一个数组,其中包含各种双精度值,当我使用 Application.WorksheetFunction.max
函数时,我收到一个值,但当我查看数组的各个值时,我可以找到多个大于该值的值Application.WorksheetFunction.max
返回。从直接 window:
?Application.WorksheetFunction.max(dummyQuantileVector)
21081,4351851852
?dummyQuantileVector(73368)
799470,509259259
这可能是什么原因?
更新:当我将整个 dummyQuantileVector 数组写入 sheet 然后使用 max 函数时,我得到了正确的值。
WorksheetFunction.Max
似乎只适用于一维数组的前 34465 个元素。它将在二维数组上正常工作。
自定义最大值函数
Function getMaxNumberFromArray(Data As Variant)
Dim v As Variant
Dim n As Double
Dim flag As Boolean
For Each v In Data
If Not flag Then
n = v
flag = True
ElseIf v > n Then
n = v
End If
Next
getMaxNumberFromArray = n
End Function