我需要一些帮助来修复我编写的 VBA 代码。问题:
我在 sheet1 上有一个包含 3 列的 excel 文件(“名称”、“ID”和“名称数据”):“名称数据”是一个空白列。
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 代码来匹配 sheet2 上的 ID 值(例如,这将是“4243”)与工作表 1 上的 ID 值,并将与该 ID 关联的名称复制到 sheet1 的“名称数据”。最终结果应如下所示:
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 行,而不是第 1 行(不包括标题行)
谁能建议我在代码中修复什么?
万分感谢!
这是代码:
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
但我无法弄清楚是什么。