如何使用VBA Vlookup填充单元格

时间:2013-08-27 22:55:14

标签: excel-vba vba excel

我正在尝试使用VBA Vlookup在同一工作簿中使用另一个工作表中的某些字段填充工作表单元格而且我被卡住了。

工作表用户拥有以下数据,A列包含Login列B包含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

我在论坛上搜索过但没有找到任何可以帮我解决的问题。

1 个答案:

答案 0 :(得分:4)

Sub VL()
    With Sheets("Users").Range("A2", Sheets("Users").Cells(Rows.Count, "A").End(xlUp))
        .Offset(, 1).Formula = "=VLOOKUP(A" & .Row & ",'Data'!$A:$B,2,FALSE)"
        .Offset(, 1).Value = .Offset(, 1).Value
    End With
End Sub