|
发表于 2017-8-19 14:43
|
显示全部楼层
本楼为最佳答案
- Sub aaa()
- Dim arr, i&, j&, rng As Range, d As Object
- Set d = CreateObject("scripting.dictionary")
- arr = Sheets(2).Range("f2:g" & Sheets(2).[f65536].End(3).Row)
- For i = 1 To UBound(arr)
- d(arr(i, 2)) = arr(i, 1)
- Next i
- arr = Sheets(1).Range("a1:a" & Sheets(1).[a65536].End(3).Row)
- ReDim Preserve arr(1 To UBound(arr), 1 To 4)
- For i = 2 To UBound(arr)
- If Not d.exists(arr(i, 1)) Or d(arr(i, 1)) = arr(1, 1) Then
- Set rng = Sheets(2).Columns(1).Find(arr(i, 1), lookat:=xlWhole)
- If Not rng Is Nothing Then
- For j = 2 To 4
- arr(i, j) = rng.Offset(, j - 1)
- Next j
- End If
- End If
- Next i
- Sheets(1).[a1].Resize(UBound(arr), 4) = arr
- End Sub
复制代码 |
|