|
Option Explicit
Sub 玩玩() '给你改成1048576吧,顺便把index也缩一缩
Dim d, arr, i%, ii%, dic, arr1
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set d = CreateObject("Scripting.Dictionary")
arr = [b2].CurrentRegion
For i = 3 To UBound(arr)
d(arr(i, 1)) = arr(i, 2) & "|" & arr(i, 3)
Next
For ii = 3 To [k1048576].End(xlUp).Row
Cells(ii, "n").Resize(, 2) = Application.Index(Split(d(Cells(ii, "k").Value), "|"), [{1,2}])
Next
Set dic = CreateObject("Scripting.Dictionary")
arr1 = [k2].CurrentRegion
For i = 3 To UBound(arr1)
dic(arr1(i, 1)) = arr1(i, 2) & "|" & arr1(i, 3)
Next
For ii = 3 To [b1048576].End(xlUp).Row
Cells(ii, "e").Resize(, 2) = Application.Index(Split(dic(Cells(ii, "b").Value), "|"), [{1,2}])
Next
Set d = Nothing
Set dic = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
|
|