借楼学习一下字典,打扰了
Sub test()
lastr = Cells(Rows.Count, "e").End(xlUp).Row
arr = Range("a1:m" & lastr)
Set dic = CreateObject("scripting.dictionary")
For i = 3 To UBound(arr) Step 4
If Not dic.exists(arr(i, 2)) Then
Set dic(arr(i, 2)) = CreateObject("scripting.dictionary")
End If
For j = 6 To UBound(arr, 2)
If arr(i - 1, j) <> "" Then
dic(arr(i, 2))(arr(i - 1, j)) = dic(arr(i, 2))(arr(i - 1, j)) + arr(i + 2, j)
End If
Next
Next
brr = [r1].CurrentRegion
For i = 3 To UBound(brr)
For j = 2 To UBound(brr, 2)
If dic.exists(brr(i, 1)) Then
If dic(brr(i, 1)).exists(brr(2, j)) Then
brr(i, j) = dic(brr(i, 1))(brr(2, j))
End If
End If
Next
Next
[r1].CurrentRegion = brr
Set dic = Nothing
End Sub
|