Application.Worksheetfunction.Max不返回数组中的最大数字

时间:2018-06-26 10:24:22

标签: vba excel-vba max worksheet-function excel

我有一个充满各种双精度值的数组,当我使用Application.WorksheetFunction.max函数时,我收到一个值,但是当我查看数组的单个值时,我会发现多个值,这些值大于Application.WorksheetFunction.max。从立即窗口复制:

?Application.WorksheetFunction.max(dummyQuantileVector)
 21081,4351851852 
?dummyQuantileVector(73368)
 799470,509259259 

这可能是什么原因?

更新:当我将整个dummyQuantileVector数组写入工作表中,然后使用use max Function时,我得到了正确的值。

1 个答案:

答案 0 :(得分:2)

看来WorksheetFunction.Max仅可用于一维数组的数组的前34465个元素。它将在2D阵列上正常工作。

enter image description here

自定义最大功能

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