Я пытаюсь заполнить ячейки листа некоторыми полями из другого листа в той же книге, используя VBA Vlookup
, и я застрял.Как заполнить ячейки с помощью VBA Vlookup
Рабочие листы имеют следующие данные: в колонке А содержится Login
столбец В содержит Number
; он пуст, но цель состоит в том, чтобы заполнить его данными из другого листа:
Login Number
===============
ffff
bbbb
cccc
dddd
eeee
aaaa
На листе «Данные» я получил следующее:
Login Number
===============
aaaa 1234
bbbb 1235
cccc 1236
dddd 1237
eeee 1238
ffff 1239
В настоящее время я использую этот код
Sub VL()
Dim Login As Range
Set Login = Sheets("Users").Cells(2, 1)
Do Until Len(Login) = 0 'This will loop until the first empty cell
Login.Offset(0, 1).FormulaR1C1 = Application.WorksheetFunction.VLookup(_
Sheets("Users").Range("$A:$A"), [Table], 2, False)
Calculate
Login.Offset(0, 1).Value = Login.Offset(0, 1).Value
Set Login = Login.Offset(1, 0)
Loop
End Sub
И результат не как ожидалось:
Login Number
===============
ffff #N/A
bbbb
cccc
dddd
eeee
aaaa
Я искал на форуме, но не нашел ничего, чтобы помочь мне решить эту проблему.
Ссылки на ячейки в формуле, которую вы поставляете «Range.FormulaR1C1», должны выглядеть как «R1C1»; это упрощает работу с ссылкой на «A1», чтобы создать ссылку на ячейку с кодом VBA, как в «ref =« R »и строке« C »и столбце», где «строка» и «столбец» могут быть переменные. –
И +1 для вопроса Excel, который на самом деле о * программировании * с объектной моделью Excel! Не стесняйтесь * принимать * ответ, который решает вашу проблему :) –