/ / Excel 2013 VBA Vlookup-Funktion Fehler - Excel, VBA, Excel-VBA, Vlookup

Excel 2013 VBA Vlookup-Funktion Fehler - Excel, VBA, Excel-VBA, vlookup

Ich habe ein Programm geschrieben, das einRessourcenübersicht. An einer Stelle im Programm möchte ich eine Vlookup-Funktion über VBA einstellen. Wenn ich die vlookup-Funktion manuell im Blatt anlege (schreibe die Formel in die Zelle) (=SVERWEIS(B2;"MS Project"!A:H;2;FALSCH)) ("SVERWEIS" ist das deutsche Wort für "SVERWEIS","FALSCH" ist das deutsche Wort für "FALSE"), es funktioniert gut, aber wenn ich die folgende Codezeile verwende, um diese Formel automatisch in die Zelle einzufügen, tut es das nicht.

rngTarget.Cells(i, col + 1).value = WorksheetFunction.VLookup(rngTarget.Range("B" & i), _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)

"rngTarget" repräsentiert den usedRange des activeSheets.

"i" steht für die aktuelle Zeile, mit der ich arbeite.

Das Bild unten zeigt den Laufzeitfehler (1004), den ich während der Ausführung meines Programms erhalte.

Bildbeschreibung hier eingeben

Es besagt, dass die Vlookup-Eigenschaft des WorksheetFunction-Objekts nicht zugewiesen werden konnte.

Edit: Bevor diese Zeile ausgeführt wird, überprüfe ich, ob das gesuchte Objekt in "Ms Project" existiert. Nur wenn es existiert, wird die vlookup-Funktion gesetzt.

LÖSUNG: Ich habe das Problem herausgefunden, ich habe mich geändert:

rngTarget.Cells(i, col + 1).value = WorksheetFunction.VLookup(rngTarget.Range("B" & i), _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)

zu:

rngTarget.Cells(i, col + 1).value = Application.VLookup(rngTarget.Range("B" & i).value, _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)

Antworten:

0 für die Antwort № 1

Für das Argument Lookup_value referenzieren Sie das gesamte Objekt rngTarget.Range("B" & i), versuche es hinzuzufügen .Value2 um nur den Wert für diesen Bereich zurückzugeben.

d.h.

rngTarget.Cells(i, col + 1).value = WorksheetFunction.VLookup(rngTarget.Range("B" & i).Value2, _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)