vba excel SVERWEIS: lookup-Wert in array gespeichert, lookup-Tabelle in excel, die Ausgabe Wert zu array

Bin ich mit dem SVERWEIS zum Auffüllen der ein array in vba.

Array (InfArray) ist ein ~100-Zeile 3-Spalte-array. Die erste Spalte des Arrays ist bereits gefüllt mit integer-Werten. Diese integer-Werte entsprechen einem Namen. In einem meiner excel-Blatt habe ich eine Tabelle, die hat jeder integer-id aufgeführt, mit den entsprechenden Namen. So will ich mit der SVERWEIS-Funktion prüfen Sie die id integer, und füllen Sie die zweite Spalte des Arrays mit den tatsächlichen Namen.

Hier ist der code-Anweisung habe ich zum zuweisen der zweiten Spalte (original schlechter code):

For y = 1 To UBound(InfArray,1)
    Set InfArray(y,2) = Application.WorksheetFunction.VLookup(InfArray(y,1), NameSheet.Range("B2:C244"), 2, False).Value
Next y

Es ist mir eine Objekt-variable oder With-Blockvariable nicht festgelegt Fehler.

Wenn ich den cursor über den code text nach der Ausführung sehe ich, dass die

NameSheet.Range("B2:C244")

ist, wo die Objekt-variable oder with-Blockvariable nicht festgelegt Fehler liegt. Das ist wirklich verwirrend. Ich habe eine

Debug.Print NameSheet.Name

In den code vor dem Fehler und es wird mir der richtige name des excel-Blatt in Frage. Also den code muss man im richtigen Arbeitsblatt, aber irgendwie ist es nicht immer die Auswahl...?

Ich bin verloren, bitte helfen Sie

EDIT: Der Fehler war ein Tippfehler im code

NameSheet.Range("B2:C244")

hätte

NamesSheet.Range("B2:C244")

Beachten Sie das " s " am Ende von Namen

Funktioniert das nun mit den änderungen vorgeschlagen

Arbeiten code-Zeile:

For y = 1 To UBound(InfArray,1)
    InfArray(y,2) = Application.WorksheetFunction.VLookup(InfArray(y,1), NamesSheet.Range("B2:C244"), 2, False)
Next y

Entschuldigung für die stoopid Fehler.

Danke für Sie Hilfe.

InformationsquelleAutor agnuke | 2015-07-12
Schreibe einen Kommentar