AW: RANG-Funktion in VBA auf ARRAY anwenden
Wolli
Hallo NoNet,
habe jetzt eine ganze Zeit gedacht und probiert - ohne Erfolg. Daher versuche ich es noch mal mit Logik und erkläre, warum es nicht gehen kann:
1.) Die WorksheetFunction.Rank-Methode verlangt lt. Onlinehilfe "Datentyp: Range, Beschreibung: Bezug – ein Array von oder ein Bezug auf eine Liste von Zahlen. Nichtnumerische Werte in Bezug werden ignoriert. " Auch wenn da eigentlich steht "ein Array von ... Zahlen", heißt das leider noch lange nicht, dass das auch funktioniert.
Debug.Print Application.WorksheetFunction.Rank(2, Array(2, 5, 1, 7, 3))
führt zu einem Fehler, es wird also definitiv ein "Range"-Objekt benötigt.
2.) Onlinehilfe: "Range-Objekt - Stellt eine Zelle, eine Zeile, eine Spalte, eine Auswahl von Zellen aus einem oder mehreren zusammenhängenden Zellblöcken oder einen 3D-Bereich dar."
Es scheint mir also nicht möglich zu sein, ein Range-Objekt zu verwenden, das NICHT auf einen Tabellenbereich verweist.
Ich hatte auch überlegt, ob man irgendwie ein "virtuelles" Range-Objekt neu erstellen kann, das sich nicht auf einen vorhandenen Zellbereich bezieht, aber da sehe ich schwarz.
Es liefe also darauf hinaus, tatsächlich das Array in einen (möglicherweise versteckten) Zellbereich zu kopieren und anschließend die Funktion zu verwenden.
Viele Grüße, Wolfgang