|
代码出来了,附件正在校正,请稍候。
- Option Explicit
- Sub samesum()
- Dim i As Long, n As Long, arr(), j As Long
- Dim d, t As Single
- t = Timer
- Sheet1.[c4:r7].ClearContents
- Set d = CreateObject("Scripting.Dictionary")
- n = Sheet2.[a65536].End(xlUp).Row
- arr = Sheet2.Range("a2:d" & n)
- For i = 1 To UBound(arr)
- d(arr(i, 1) & arr(i, 2) & arr(i, 3)) = d(arr(i, 1) & arr(i, 2) & arr(i, 3)) + arr(i, 4)
- Next
- Erase arr
- arr = Sheet1.Range(Sheet1.Cells(2, 2), Sheet1.Cells(Sheet1.[B65536].End(3).Row, Sheet1.[iv3].End(xlToLeft).Column))
- For i = 1 To UBound(arr, 1) - 2
- For j = 1 To UBound(arr, 2) - 1
- arr(i + 2, j + 1) = d(arr(i + 2, 1) & arr(1, 4 * Int((j - 1) / 4) + 2) & arr(2, j + 1))
- Next
- Next
- Sheet1.[b2].Resize(UBound(arr, 1), UBound(arr, 2)) = arr
- Erase arr
- Set d = Nothing
- MsgBox Timer - t & "秒"
- End Sub
复制代码 |
|