AW: sverweis (Suche) im array
24.04.2018 09:16:02
Daniel
Hi
wenn du dir den Suchbegriff im Array überschreiben willst, dann so:
ARRAY01(i, 2) = Application.VLookUp(ARRAY01(i, 2), ARRAY02, 4, 0)
du kannst "Application.VLookUp" oder "Worksheetfunction.VLookUp" verwenden.
der Unterschied zwischen beiden Varianten liegt im Verhalten für den Fall, dass der Suchbegriff nicht gefunden werden kann.
bei Worksheetfunction.VLookUp bekommst du dann auf jeden Fall einen Fehlerabbruch im Code.
bei Application.VLookUp gibt dir die Funktion einen Fehlerwert zurück, dh der Code kann normal weiterlaufen, wenn er so geschrieben ist, das Fehlerwerte verarbeitet werden können (da muss man ein paar dinge beachten, z.B. muss die Aufnehmende Variable vom Typ "Variant" sein).
Alternativ kannst du hier auch ohne VLookUp mit einer inneren Schleife arbeiten:
For i = 1 to Ubound(ARRAY01, 1)
For j = 1 to Ubound(ARRAY02, 1)
if ARRAY01(i, 2) = ARRAY02(j, 1) Then
ARRAY01(i, 2) = ARRAY02(j, 4)
Exit For
end if
Next
Next
hier bleibt dann der Suchbegriff ARRAY01(i, 2) unverändert, falls er nicht in ARRAY02 vorhanden ist
Gruß Daniel