你源代码也没有对这个进行处理……
Sub test()
Dim vArr, brr, crr, drr, i&, j&, n&, k
Dim dic As Object
Set dic = CreateObject("scripting.dictionary")
With Sheet1
vArr = .Range("l2").CurrentRegion
brr = .Range("A2").CurrentRegion
End With
For i = 2 To UBound(vArr)
dic(vArr(i, 1)) = i
Next i
ReDim crr(1 To UBound(brr), 1 To UBound(vArr, 2))
For i = 3 To UBound(brr)
If dic.exists(brr(i, 1)) Then
For j = 1 To UBound(vArr, 2)
crr(i - 2, j) = vArr(dic(brr(i, 1)), j)
Next j
dic.Remove brr(i, 1)
End If
Next
ReDim drr(1 To UBound(vArr), 1 To UBound(vArr, 2))
For Each k In dic.keys
n = n + 1
For j = 1 To UBound(vArr, 2)
drr(n, j) = vArr(dic(k), j)
Next
Next k
With Sheet1
With .[l3].Resize(UBound(crr), UBound(crr, 2))
.Clear
.Value = crr
End With
.Cells(UBound(brr) + 1, "l").Resize(UBound(drr), UBound(drr, 2)).Value = drr
End With
End Sub