Excel中的Vlookup VBA代码,不在正确的单元格中复制数据(只需要在我的代码中进行一个小修复)



我需要一些帮助来修复我编写的VBA代码。问题:

我有一个excel文件,表1上有三列("姓名"、"ID"one_answers"姓名数据"):"姓名数据"是一个空白列。

Name        ID      Name Data
Albert      4235 
John        4237 
Robert      4239 
Micky       4241 
Minnie      4243 
Donalid     4245 
Edited      4247 
Goofy       4249 

在表2上,有一个类似的ID栏,只有一个ID:例如:

ID
4243

我有一个vlookup代码来匹配表2上的ID值(在本例中,它将是"4243")和表1上的ID数值,并将与该ID相关的名称复制到表1的"名称数据"中。最终结果应该是这样的:

Name       ID    Name Data
Albert    4235 
John      4237 
Robert    4239 
Micky     4241 
Minnie    4243     Minnie
Donalid   4245 
Edited    4247 
Goofy     4249

问题:这个代码的问题是它将名称复制到"名称数据"下的第一个单元格上。例如:它执行以下操作:

Name      ID      Name Data
Albert    4235     Minnie
John      4237 
Robert    4239 
Micky     4241 
Minnie    4243 
Donalid   4245 
Edited    4247 
Goofy     4249

名称"minnie"应复制到"名称数据"下的第5行,而不是第一行(不包括标题行)

有人能建议我在代码中修复什么吗?

非常感谢!

这是代码:

Sub lookup()
x = 2
Set rng1 = Worksheets("Sheet1").Range("b4:b8")
Set rng2 = Worksheets("Sheet2").Range("A2:A2")
For Each c1 In rng1
For Each c2 In rng2
If c1.Value = c2.Value Then
Worksheets("sheet1").Cells(x, 3).Value = c2.Value
If c1.Value <> c2.Value Then
Worksheets("Sheet1").Cells(x, 3).Value = Worksheets("Sheet1").Cells(x, 3).Value
x = x + 1
End If
End If
Next
Next
End Sub

我知道这与这条线有关:

Worksheets("sheet1").Cells(x, 3).Value = c2.Value

但我不知道是什么。

我完成了以下代码:

Sub lookup()
Set rng1 = Worksheets("sheet1").Range("B2:B19")
Set rng2 = Worksheets("sheet2").Range("A2:A2")
For Each c1 In rng1
    For Each c2 In rng2
        If c2.Value = c1.Value Then
            Worksheets("sheet1").Cells(c1.Row, 3).Value = Worksheets("sheet1").Cells(c1.Row, 1).Value
        End If
    Next
Next
End Sub

已共享您更正的文件:https://www.dropbox.com/s/0nsr1iuwnzt1s1x/VlookupVBA.xlsm

最新更新