可能需要 Excel 问题宏

可能需要 Excel 问题宏

我尝试在 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 列中删除公式。

相关内容