|
参与一下。。。
- Sub ykcbf() '//2024.9.12
- Set d = CreateObject("Scripting.Dictionary")
- Set d1 = CreateObject("Scripting.Dictionary")
- arr = Sheets("Sheet1").UsedRange
- ReDim brr(1 To UBound(arr), 1 To 7)
- For i = 2 To UBound(arr)
- s = arr(i, 3) & "|" & arr(i, 6)
- If Not d.exists(s) Then
- m = m + 1
- d(s) = m
- brr(m, 1) = arr(i, 3)
- brr(m, 2) = arr(i, 6)
- brr(m, 4) = arr(i, 8)
- brr(m, 6) = arr(i, 9)
- Else
- r = d(s)
- brr(r, 4) = brr(r, 4) + arr(i, 8)
- brr(r, 6) = brr(r, 6) + arr(i, 9)
- End If
- Next
- arr = Sheets("Sheet2").UsedRange
- For i = 2 To UBound(arr)
- s = arr(i, 3) & "|" & arr(i, 4)
- If Not d1.exists(s) Then
- d1(s) = Array(arr(i, 4), arr(i, 5), arr(i, 6))
- Else
- t = d1(s)
- t(1) = t(1) + arr(i, 5)
- t(2) = t(2) + arr(i, 6)
- d1(s) = t
- End If
- Next
- With Sheets("Sheet3")
- .UsedRange.Offset(1).Clear
- .Columns(1).NumberFormatLocal = "@"
- .[a2].Resize(m, 7) = brr
- arr = .UsedRange
- For i = 2 To UBound(arr)
- s = arr(i, 1) & "|" & arr(i, 2)
- If d1.exists(s) Then
- arr(i, 3) = d1(s)(0)
- arr(i, 5) = d1(s)(1)
- arr(i, 7) = d1(s)(2)
- End If
- Next
- .UsedRange = arr
- End With
- MsgBox "OK!"
- End Sub
复制代码
|
|