Я хочу найти индекс n-го наибольшего значения в массиве. Я могу сделать следующее, но он столкнулся с проблемой, когда 2 значения равны.VBA - Получить индекс n-го наибольшего значения в массиве
fltArr(0)=31
fltArr(1)=15
fltArr(2)=31
fltArr(3)=52
For i = 0 To UBound(fltArr)
If fltArr(i) = Application.WorksheetFunction.Large(fltArr, n) Then
result = i
End If
Next
п = 1 ---> 3
п = 2 ---> 2 (но я хочу, чтобы это было 0)
п = 3 ---> 2
п = 4 ---> 1
Один из вариантов заключается в том, чтобы записать массив в рабочий лист с его значением индекса в ячейке рядом с ним, а затем использовать функцию рабочего листа для сортировки диапазона. Затем вы можете получить индекс для отсортированного списка. – tospig
Спасибо за предложение, но я стараюсь избегать этого, если смогу. Должен быть способ сделать это программно каким-то образом! – doovers
oh crap tospig, что вы ставите меня на это lol Кроме этого, возможно, посмотрите на добавление и удаление из коллекции? – Simon