Sub 求和()
Set d = CreateObject("scripting.dictionary")
arr = Range("A1").CurrentRegion
ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2) + 1)
k = 1
For i = 2 To UBound(arr)
If Trim(arr(i, 1)) <> "" Then
t = d(Trim(arr(i, 1)))
If t = "" Then
k = k + 1
d(Trim(arr(i, 1))) = k
t = k
brr(k, 1) = arr(i, 1)
End If
For j = 2 To UBound(arr, 2)
brr(t, j) = brr(t, j) + arr(i, j)
brr(t, UBound(brr, 2)) = brr(t, UBound(brr, 2)) + arr(i, j)
Next j
End If
Next i
For j = 2 To UBound(brr, 2)
brr(k + 1, j) = Application.Sum(Application.Index(brr, 0, j))
Next j
For j = 1 To UBound(arr, 2)
brr(1, j) = arr(1, j)
Next j
brr(k + 1, 1) = "合计"
brr(1, UBound(brr, 2)) = "合计"
Range("K1:IV65536").ClearContents
With Range("K1")
.Resize(k + 1, UBound(brr, 2)) = brr
End With
Set d = Nothing
End Sub
|