2

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

フォーラムで検索しましたが、これを解決するのに役立つものは何も見つかりませんでした。

4

1 に答える 1

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
于 2013-08-27T23:29:18.350 に答える