首页 文章

匹配值并将其复制到新单元格

提问于
浏览
1

我正在尝试构建一个允许我执行以下操作的Excel宏:

我有两张Excel表格 .

我希望宏匹配Sheet1中的所有值,col A与Sheet2中的单元格A1匹配 . 如果匹配,则将Sheet1中的单元格Dx从Sheet1复制到单元格D1 . 如果没有,只需移动到Sheet2中的单元格A2并执行相同操作,但将单元格Dx从Sheet1复制到单元格D2 .

我尝试了vlookup方法而且失败了 .

=vlookup($A1,CELLREF-SHEET1,column(),false)

我也试图实现我为另一个项目编写的这个方法:

Dim cel As Range, celFound As Range, rg As Range, rgLookHere As Range
Dim i As Long
Dim v As Variant
Set rg = Range("A1") 'First cell to check
Set rgLookHere = rg.Offset(0, 1).EntireColumn 'Check for matches in this column
Set rg = Range(rg, Cells(Rows.Count, rg.Column).End(xlUp))

On Error Resume Next
ReDim v(1 To rg.Cells.Count, 1 To 1)
For Each cel In rg.Cells
i = i + 1
If cel <> "" Then
Set celFound = Nothing
Set celFound = rgLookHere.Find(cel.Value, LookIn:=xlValues, LookAt:=xlWhole)
v(i, 1) = IIf(celFound Is Nothing, "Null", "yes")
End If
Next
rg.Offset(0, 2).Value = v
On Error GoTo 0

你有什么建议吗?

1 回答

  • 2

    VLookup似乎是要走的路 . 如果我在Sheet1上的列A和D中有数据,并且在Sheet2中的列A中匹配数据,那么我将以下VLookup放在Sheet2列D中:

    = VLOOKUP(A1,Sheet 1中!A:d,4,FALSE)

    您将在没有匹配的单元格中看到N / A.您始终可以使用ISNA()来识别这些,并根据IF()输出实际匹配或不输出任何内容 .

相关问题