Application.Worksheetfunction.Max не возвращает наибольшее число в массиве - PullRequest
0 голосов
/ 26 июня 2018

У меня есть массив, заполненный различными двойными значениями, когда я использую функцию Application.WorksheetFunction.max Я получаю одно значение, но когда я смотрю на отдельные значения массива, я могу найти несколько значений, которые больше значения, возвращаемого Application.WorksheetFunction.max.Скопировано из непосредственного окна:

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

Что может быть причиной этого?

Обновление: когда я записываю весь массив dummyQuantileVector в лист и затем использую там функцию maxЯ получаю правильное значение.

1 Ответ

0 голосов
/ 26 июня 2018

Похоже, что 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
...