Я пытаюсь использовать vlookup для чтения строки из документа Word и возврата соответствующих значений из листа excel. Кажется, я получаю ошибку «Subscript out или Range» в функции vlookup.Word/Excel Vba vlookup Ошибка «Subscript out of range»
Это рабочий лист, что я смотрю на: Sample Data
код у меня есть:
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
Я попытался с помощью функции Application.Vlookup, а также, но безрезультатно. Получена такая же ошибка.
Это выстрел в темноте, но вы пробовали объявить oExcel как Excel.Application? Добавить это до установки testdb, set oExcel = new Excel.Application – Alex
Вероятно, вы получите эту ошибку, если имя файла 'Main' не существует в файле Dbase.xlsm. Может быть, есть лишнее пространство или что-то еще, проверьте точность. Я подражал вашему коду, и он выглядит нормально. Одна вещь, которая может быть проблемой, заключается в том, что если вы ожидаете вернуть строку, вы можете изменить testvar1 как 'String', а не' Double'. –
Я подозреваю, что вы получаете свою ошибку, потому что ваш 'Vlookup' возвращает ошибку (так как не найден), вам нужно добавить обработку ошибок в случаях, когда ваш' Vlookup' не увенчался успехом, см. Ссылку: http://stackoverflow.com/questions/ 18063214/how-to-error-handle-1004-error-with-worksheetfunction-vlookup –