|
发表于 2013-4-3 11:05
|
显示全部楼层
本楼为最佳答案
本帖最后由 爱疯 于 2013-7-18 10:22 编辑
- Sub test31()
- Dim A(), B(), d, i%, j%, s%, t$
- A = Sheets("Sheet1").Range("A1").CurrentRegion.Value
- ReDim B(1 To UBound(A), 1 To UBound(A, 2))
- Set d = CreateObject("scripting.dictionary")
- For i = 2 To UBound(A)
- t = A(i, 1) & A(i, 2) 'key
- If d.exists(t) Then
- '已存在,则累计和
- For j = 3 To UBound(A, 2)
- B(d(t), j) = B(d(t), j) + A(i, j)
- Next j
- Else
- '不存在,则赋值
- s = s + 1: d(t) = s
- B(s, 1) = A(i, 1)
- B(s, 2) = A(i, 2)
- For j = 3 To UBound(A, 2)
- B(s, j) = A(i, j)
- Next j
- End If
- Next i
- '输出
- With Sheets("Sheet1")
- .Range("k:s").ClearContents
- If s Then .[k2].Resize(s, UBound(B, 2)) = B
- End With
- End Sub
复制代码
新建 Microsoft Excel 工作表3.rar
(10.08 KB, 下载次数: 17)
|
|