2015-06-23 6 views
1

Я использую VlookUp в VBA, но он работает только для одной ячейки.Как поместить VLOOKUP в ячейку и вставить ее?

For Each MyCell In Selection 
    MyCell = application.WorksheetFunction.VlookUp(Range("C2"), Range("A2:B50000"), 2 , 0) 
Next 

Я хочу, чтобы установить VlookUp в клетке, затем сверните это ко всем другим клеткам. Но я могу только поместить формулу в первую ячейку, затем дважды щелкнуть на других.

ответ

1

Попробуйте вместо этого:

With Selection 
    .FormulaR1C1 = "=VLOOKUP(RC3,R2C1:R50000C2,2,FALSE)" 
    .Value = .Value '// Comment out if you don't want to paste values. 
End With 

Это входит в VLOOKUP() формуле в каждую ячейку, используя относительную ссылку на строку искомого значения, а затем эффективно вставляет значения, чтобы заменить формулу.


Если вы действительно хотите, вы можете использовать VBA синтаксис:

For Each myCell In Selection 
    myCell.Value = WorksheetFunction.Vlookup(Cells(myCell.Row, 3), Range("A2:B50000"), 2, False) 
Next 
Смежные вопросы