2014-10-28 3 views
0

Я определил Cl как диапазон и попытался присвоить диапазон из данных в таблице, используя VLookUp.Excel VBA - Vlookup & range

Результат, полученный от VLookUp, представляет собой адрес диапазона (пример: e58).

Я не могу назначить его в качестве диапазона.

Set Cl= Range ("=vlookup(i, Range("a7:b28"), 2, False)") 
+0

этот вопрос не имеет смысла, извините. –

ответ

1

Это не то, как вы используете формулу в VBA. Некоторые функции доступны в объекте Application (включая VLookUp).

Set cl = Range(Application.VLookup(i, Range("a7:b28"), 2, False)) 

Для других использует Application.WorksheetFunction объекта

Set cl = Range(Application.WorksheetFunction.VLookup(i, Range("a7:b28"), 2, False)) 

Примечание: есть некоторые тонкие различия в этих двух подходах, в частности, о том, как функция обработки ошибок. Ant yes, вы должны добавить обработку ошибок в свой код.

Side Примечание: даже если ваш подход сделал работу, вам необходимо будет разграничить " «S вокруг a7:b28, как этот

"=vlookup(i, Range(""a7:b28""), 2, False)"