Ich versuche, Vlookup zu verwenden, um eine Zeichenfolge aus einem Worddokument zu lesen und entsprechende Werte aus einem Excel-Blatt zurückzugeben. Ich bekomme anscheinend einen "Index-out oder Range" Fehler in der vlookup Funktion.Word/Excel Vba vlookup "Index außerhalb des Bereichs" Fehler
Dies ist das Arbeitsblatt, das ich auf der Suche bin: Sample Data
Der Code, den ich habe, ist:
Sub Autofill()
Dim oExcel As New Excel.Application
Dim testdb As Excel.Workbook
Dim testvar1 As Double
Set testdb = oExcel.Workbooks.Open("k:\SIF\Vibration\Dbase.xlsm")
testvar1 = oExcel.WorksheetFunction.VLookup("Roger", testdb.Sheets("Main").Range("A1:C4"), 2, False)
MsgBox (testvar1)
End Sub
I als auch die Application.Vlookup Funktion versucht, mit, ohne Erfolg. Habe den gleichen Fehler.
Dies ist eine Aufnahme im Dunkeln, aber haben Sie versucht, oExcel als Excel.Application zu deklarieren? Fügen Sie dies vor der Einstellung testdb, set oExcel = neue Excel.Application – Alex
Sie würden wahrscheinlich diesen Fehler erhalten, wenn der Name des Blattes 'Main' nicht in der Datei DBASE.XLSM existiert. Vielleicht gibt es einen zusätzlichen Platz oder etwas, überprüfen Sie auf Genauigkeit. Ich emulierte deinen Code und es scheint in Ordnung zu sein. Eine Sache, die ein Problem sein könnte, ist, wenn Sie erwarten, eine Zeichenfolge zurückzugeben, möchten Sie vielleicht testvar1 zu einem 'String' und nicht' Double' ändern. –
Ich vermute, dass Sie Ihren Fehler erhalten, weil Ihr 'Vlookup' einen Fehler zurückgibt (da nicht gefunden), müssen Sie Fehlerbehandlung hinzufügen, falls Ihr' Vlookup' nicht erfolgreich ist, siehe Link: http://stackoverflow.com/questions/ 18063214/how-to-error-handle-1004-Fehler-mit-Arbeitsblattfunktion-vlookup –