vlookup auf array / Ziel ist die Indexnummer

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: vlookup auf array / Ziel ist die Indexnummer
von: Martin
Geschrieben am: 04.08.2015 12:41:50

Hallo Zusammen
wie kann ich ein array mit vba nach einem wert durchsuchen und den index (position im array) des treffers in eine variable schreiben?
Muster

Sub Test()
Dim Arr as variant
Dim ArtNr
Arr = 121212, 131313, 141414, 151515
ArtNr = 141414
MsgBox WorksheetFunction.VLookup(ArtNr, Arr, 1)
' jetzt sollte als resultat eine 3 in der msgbox erscheinen
End Sub

Etwas mache ich falsch..
Gruss
Martin

Bild

Betrifft: AW: vlookup auf array / Ziel ist die Indexnummer
von: Daniel
Geschrieben am: 04.08.2015 12:49:06
Hi
Arr = Array(121212, 131313, 141414, 151515)
ArtNr = 141414
MsgBox WorksheetFunction.Match(ArtNr, Arr, 1)
End Sub

beachte, bei 3. Parameter = 1 müssen die Werte im array aufsteigend sortiert sein.
bei unsortierten Daten 3. Parameter = 0 setzen.
Worksheetfunction.Match gibt dir immer die Position des Wertes im Array zurück und nicht dessen Index.
dh der erste Wert hat immer die 1 als Ergebnis, unabhängig von der Basis des Arrays.
Gruß Daniel

Bild

Betrifft: AW: vlookup auf array / Ziel ist die Indexnummer
von: Martin
Geschrieben am: 04.08.2015 12:58:30
Hallo Daniel
danke für die unterstützung.
Match heist also die lösung.
Der erste test sieht gut aus, werde jetzt einen massentest vorbereiten und danach sehen ob es durchgängig funktioniert.
Mittels des ermittelten wert, werden andere arrays an der identischen position ausgelesen und die werte in eine tabelle übertragen. danach zeigt sich ob mein ansatz funktioniert.
Gruss
Martin

 Bild

Beiträge aus den Excel-Beispielen zum Thema "mehrere Verweise"