我需要一些帮助来修复我编写的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