|
本帖最后由 lewis16888 于 2012-7-5 11:36 编辑
请老师跟版主帮忙,谢了
F列按照顺序由大到小排列,如果长跟宽一样只出现一笔,且数量相加
- Sub 汇总()
- Dim arr, i, d, brr(), atmp
- arr = Range("b2:d" & Range("b65536").End(3).Row)
- Set d = CreateObject("scripting.dictionary")
- For i = 1 To UBound(arr)
- d(arr(i, 1) & " " & arr(i, 2)) = d(arr(i, 1) & " " & arr(i, 2)) + arr(i, 3)
- Next
- atmp = d.keys
- ReDim brr(1 To 3, 0 To d.Count)
- brr(1, 0) = "长": brr(2, 0) = "宽": brr(3, 0) = "数量"
- For i = 1 To d.Count
- brr(1, i) = Split(atmp(i - 1), " ")(0)
- brr(2, i) = Split(atmp(i - 1), " ")(1)
- brr(3, i) = d(atmp(i - 1))
- Next
- Application.ScreenUpdating = False
- With Range("f1:h" & d.Count + 1)
- .ClearContents
- .Value = Application.Transpose(brr)
- .Sort Key1:=Range("f2"), Order1:=xlDescending, Key2:=Range("g2"), _
- Order2:=xlDescending, Key3:=Range("h2"), Order3:=xlDescending
- End With
- Application.ScreenUpdating = True
- End Sub
复制代码
Book122.rar
(11.65 KB, 下载次数: 7)
|
|