VBA - Get index des N.-größten Wert in einem array

Möchte ich finden den index des N.-größten Wert in einem array. Ich kann die folgenden, aber es läuft in Probleme, wenn 2 Werte gleich sind.

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

n=1 ---> 3
n=2 ---> 2 (aber ich will, dass das 0 sein)
n=3 ---> 2
n=4 ---> 1

Eine Möglichkeit wäre, zu schreiben, das array in ein Arbeitsblatt mit der index-Wert in der Zelle daneben, dann verwenden Sie die Tabellenfunktion, um die Sortierung der Palette. Sie können dann wählen, bis der index für die sortierte Liste.
Danke für den Vorschlag, aber ich versuche das zu vermeiden wenn ich kann. Es muss einen Weg, es zu tun programmgesteuert irgendwie!
oh Mist tospig Sie Wette mir lol Abgesehen davon, vielleicht schauen Sie in das hinzufügen und entfernen aus einer Sammlung?
Hallo doovers, ich aktualisierte den code. Es mag sein, dass alles, was Sie brauchen, ist hinzufügen ein "Exit for" die Schleife. Bitte im code sehen.
Hallo, ich reedited meine Antwort. Sehen, ob es hilft. Ich habe eine neue variable namens "count" zu helfen, das Problem zu lösen.

InformationsquelleAutor doovers | 2015-02-12

Schreibe einen Kommentar