Я написал программу, которая создает ресурс-обзор. В какой-то момент в программе я хочу установить vlookup-функцию через VBA. Если я установил функцию vlookup вручную на листе (напишите формулу в ячейку) (=SVERWEIS(B2;'MS Project'!A:H;2;FALSCH)
) («SVERWEIS» - это немецкое слово для «VLOOKUP», «FALSCH» - немецкое слово для «FALSE»), он отлично работает , но если я использую следующую строку кода, чтобы автоматически вставить эту Формулу в ячейку, это не так.Excel 2013 VBA Ошибка Vlookup-функции
rngTarget.Cells(i, col + 1).value = WorksheetFunction.VLookup(rngTarget.Range("B" & i), _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)
"rngTarget" представляет используемый диапазон активного листа.
«i» представляет текущую строку, с которой я работаю.
На рисунке ниже показана ошибка времени выполнения (1004), которую я получаю во время выполнения моей программы.
Он говорит, что ВПР-Достояние WorksheetFunction-объект не может быть назначен.
Редактировать: перед выполнением этой строки проверяется, существует ли найденный объект в «Проект Ms». Только если он существует, он установит функцию vlookup.
РЕШЕНИЕ: я понял проблему, я изменил:
rngTarget.Cells(i, col + 1).value = WorksheetFunction.VLookup(rngTarget.Range("B" & i), _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)
к:
rngTarget.Cells(i, col + 1).value = Application.VLookup(rngTarget.Range("B" & i).value, _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)
Я также попробовал, что и раньше, это ничего не меняет. Но я позволю этому rngTarget.Range («B» & i). Значение. – flohdieter
@flohdieter, пожалуйста, см. Небольшую поправку, попробуйте использовать '.Value2' – Carrosive
ah okay, попробовал, все равно такая же ситуация. Спасибо за вашу помощь, я решил проблему, отредактировал мой вопрос! – flohdieter