这是Extract and List Matching Cells
的后续帖子现在,下面的代码比较同一工作表(A和B)中包含公司名称的两列。它会找到完全匹配的任何名称,并将它们列出在C列中。
我想对此进行修改,以使用从中获得A和B列的实际数据表。 A列源自工作表2,AF列。 B列来自工作表3的L列。数据从单元格2开始。
我也想修改结果:
当前:如果A列= B的行大于2,则C列获取B列的值
目标:如果Sheet2.Column AF = Sheet3.L列大于2的行,则New Sheet从Sheet3获取相应的行
Sub matchComps()
Application.ScreenUpdating = False
Dim i As Long, j As Long, arrA As Variant, arrB As Variant, arrC As Variant
With Worksheets("Sheet1")
arrA = .Range(.Cells(3, "A"), .Cells(.Rows.Count, "A").End(xlUp)).Value2
arrB = .Range(.Cells(3, "B"), .Cells(.Rows.Count, "B").End(xlUp)).Value2
ReDim arrC(1 To Application.Min(UBound(arrA, 1), UBound(arrB, 1)), 1 To 1)
For i = LBound(arrA, 1) To UBound(arrA, 1)
If Not IsError(Application.match(arrA(i, 1), arrB, 0)) Then
j = j + 1
arrC(j, 1) = arrA(i, 1)
End If
Next i
.Cells(3, "C").Resize(UBound(arrC, 1), UBound(arrC, 2)) = arrC
End With
Application.ScreenUpdating = True
End Sub
这将为工作表(3)中与表(2)中的公司匹配的所有公司有效地在工作表(3)中创建新的数据表。