2016-07-28 7 views
0

Я пытаюсь создать макрос VLOOKUP, предлагающий пользователю выбирать ячейки и диапазоны.VLOOKUP в VBA Excel VLOOKUP

В принципе, я хочу найти значение ячейки в одной вкладке в диапазоне в другой вкладке и вернуть столбец, который пользователь выбирает.

Итак ... Это то, что я хочу ...

VLOOKUP(""USER SELECT LOOKUP value", "USER SELECT TABLE ARRAY", "USER SELECT COL INDEX NUM", FALSE) 

меня это до сих пор, но ничего не возвращает, когда макрос завершает работы ...

Subject = Application.Input box("select Subject to be looked up") 
Sheet = Application.Input box("select tab/range") 

      Formula = "=VLOOKUP(""Subject"",""Sheet"",3,False)" 

end sub 

ответ

2

Вы должны потянуть переменные из котировок и конкатенации с использованием &.

Кроме того, вы хотите, чтобы сделать их диапазоны и использовать их адрес в формуле:

Dim subject As Range 
Dim sheet As Range 
Dim clm as long 
Set subject = Application.InputBox(prompt:="select Subject to be looked up", Type:=8) 
Set sheet = Application.InputBox(prompt:="select tab/range", Type:=8) 
clm = Application.InputBox(prompt:="Relative Column Reference", Type:=1) 
'Change the range to the cell into which you want the formula placed. 
ActiveSheet.Range("A1").Formula = "=VLOOKUP(" & Subject.Address(0,0) & "," & sheet.Address(0, 0, xlA1, 1) & "," & clm & ",False)" 
+0

Привет, спасибо за помощь! Я попытался использовать это, но это порождает меня ошибка ... Runtime 91 объектная переменная с переменной блока не установлена ​​ – Ben

+0

@Ben извините, мой плохой. См. Править. Возможно, вам потребуется обновить страницу. Если он закончит работу, пожалуйста, отметьте как правильный, щелкнув галочку по ответу. –

+0

Все нормально. Да, я понял, что после того, как я отправил свой комментарий, что он не был установлен, поэтому я их установил, но он все равно не возвращает значение, просто пустую ячейку без формулы. – Ben