Sub zzz()
Sheets("要答案的工作表").Activate
Dim d, arr, brr, i, j, x, y, s$
Set d = CreateObject("scripting.dictionary")
arr = Sheets("原始数据").[a1].CurrentRegion.Value
x = UBound(arr, 2): y = UBound(arr)
brr = [a1].CurrentRegion.Value
For i = 2 To y
For j = 6 To x
s = arr(i, 2) & arr(i, 3) & arr(i, 4) & arr(i, 5) & arr(1, j)
d(s) = d(s) + arr(i, j)
Next
Next
For i = 2 To UBound(brr)
For j = 6 To x
s = brr(i, 2) & brr(i, 3) & brr(i, 4) & brr(i, 5) & brr(1, j)
brr(i, j) = d(s)
Next
Next
[a1].Resize(UBound(brr), x) = brr
End Sub***************************** - Sub yyy()
- Sheets("要答案的工作表").Activate
- Dim d, arr, brr, i, j, m, n, x, y
- Set d = CreateObject("scripting.dictionary")
- arr = Sheets("原始数据").[a1].CurrentRegion.Value
- x = UBound(arr, 2): y = UBound(arr)
- ReDim brr(1 To y, 1 To x)
- For i = 2 To y
- s = arr(i, 2) & arr(i, 3) & arr(i, 4) & arr(i, 5)
- d(s) = Array(Empty, arr(i, 2), arr(i, 3), arr(i, 4), arr(i, 5))
- Next
- [a2].Resize(d.Count, 5) = Application.Rept(d.items, 1)
- d.RemoveAll
- brr = [a1].CurrentRegion.Value
- For i = 2 To y
- For j = 6 To x
- s = arr(i, 2) & arr(i, 3) & arr(i, 4) & arr(i, 5) & arr(1, j)
- d(s) = d(s) + arr(i, j)
- Next
- Next
- For i = 2 To UBound(brr)
- For j = 6 To x
- s = brr(i, 2) & brr(i, 3) & brr(i, 4) & brr(i, 5) & brr(1, j)
- brr(i, j) = d(s)
- Next
- Next
- [a1].Resize(UBound(brr), x) = brr
- End Sub
|