|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
弄个简单点的:假定SHEET1只有两列,A列表示收料单的“材料编号”,B列表示“购进数量”,要按材料编号进行数量汇总,则:
Sub hz()
Dim i&, Myr&, Arr
Dim d, k, t
Set d = CreateObject("Scripting.Dictionary")
Myr = Sheet1.[a65536].End(xlUp).Row
Arr = Sheet1.Range("a1:b" & Myr)
For i = 2 To UBound(Arr) '首行为字段名,从第二行起取数。
d(Arr(i, 1)) = d(Arr(i, 1)) + Arr(i, 2) '数量求和就在此,有人在此句之前加上判断句: If Not d.exists(Arr(i, 1)) Then …ELSE…ENDIF,我不知道有多大意义,因为我不加判断,似乎不影响结果,盼有高人指点。
Next
k = d.keys
t = d.items
With Sheets("sheet2")
.Range("A2:B" & d.Count).ClearContents
.Range("A2").Resize(d.Count, 1).Value = Application.Transpose(k)
.Range("B2").Resize(d.Count, 1).Value = Application.Transpose(t)
End With
End Sub
[ 本帖最后由 中原一布衣 于 2011-5-31 21:06 编辑 ] |
|