2017-01-24 6 views
0

Я пытаюсь добавить VLOOKUP в столбец для ввода данных с одного листа на другой. Размер массива таблицы на листе поиска будет меняться, поэтому я хочу добавить переменную в формулу.Excel VBA, используя переменные с VLOOKUp

Вот что я до сих пор:

Sheets("Page1_5").Select 

Dim CountryRow As Long 
Cells(5, 1).Select 
Selection.End(xlDown).Select 
CountryRow = ActiveCell.Row 
Sheets("Results").Select 
Range("B2").Select 
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Page1_5!$A$5:$F$" & CountryRow & ",6,FALSE)" 

Любая помощь будет с благодарностью получил

+0

Почему вы не просто преобразовать диапазон в таблицу, а затем использовать заголовок столбца именованные диапазоны? Они будут автоматически регулироваться без необходимости VBA. – Jordan

ответ

0

Вы должны придерживаться метода и пойти с ним - в начале вы используете Cells(5, 1).Select, позже вы используя Range("B2").Select и, наконец, внутри VLookup у вас есть, RC[-1] и $A$5:$F$" & CountryRow.

Кроме того, нет необходимости использовать Select, Selection и ActiveCell, но вместо этого вы можете использовать полностью подготовленные рабочие листы и диапазоны.

Попробуйте код ниже:

Option Explicit 

Sub TestVlookup() 

Dim CountryRow As Long 

With Sheets("Page1_5") 
    CountryRow = .Range("A5").End(xlDown).Row 
End With 

With Sheets("Results") 
    Range("B2").Formula = "=VLOOKUP(A2,Page1_5!$A$5:$F$" & CountryRow & ",6,FALSE)" 
End With 

End Sub 
+0

@Thomas Gaston вы проверили код? это работает так, как вы планировали? –

+0

Спасибо. Проработал угощение :) –