我尝试在 Excel 中比较列表。有两个列表,一个列表只有一列,另一个有两列,我尝试做的是,当 A 列与 C 列匹配时,取 D 列中的值并用它来替换 A 列。
例如:
Column A Column B Column C Column D
Blue Blue Shirt
Blue Red Pants
Red Green Shoes
Red
Green
Green
Purple
So the completed list should look like:
Column A Column B Column C Column D
Shirt Blue Shirt
Shirt Red Pants
Pants Green Shoes
Pants
Shoes
Shoes
Purple
答案1
它会一直工作,直到你遇到错误。然后它停止工作。不知道为什么,也许你或其他人可以修复它,但只要找到你的选择,它就会对你的选择起作用(例如“紫色”打破了循环)
Sub test()
Dim a As Variant
Application.ScreenUpdating = False
On Error Resume Next
Err.Clear
For Each c In Selection
a = Application.WorksheetFunction.VLookup(c, Range("C1:D3"), 2, False)
If Err.Number = 0 Then c.Value = a
Next
Application.ScreenUpdating = True
End Sub
答案2
在另一列(例如B)中输入以下公式并向下填写:
=IFERROR(VLOOKUP(A1,$C$1:$D$3,2,FALSE),A1)
然后复制结果列,并选择性粘贴 - >仅在 A 列上粘贴值。然后您可以从 B 列中删除公式。