|
Sub 分类汇总()
Application.ScreenUpdating = False
Dim ar As Variant
Dim d As Object
Set d = CreateObject("scripting.dictionary")
With Sheets("送货单数据表")
r = .Cells(Rows.Count, 3).End(xlUp).Row
If r < 4 Then MsgBox "送货单数据表为空!": End
ar = .Range("c3:u" & r)
End With
Dim br()
ReDim br(1 To UBound(ar), 1 To 8)
For i = 2 To UBound(ar)
If Trim(ar(i, 1)) <> "" And Trim(ar(i, 2)) <> "" And Trim(ar(i, 3)) <> "" And Trim(ar(i, 4)) <> "" Then
zd = Trim(ar(i, 1)) & "|" & Trim(ar(i, 2)) & "|" & Trim(ar(i, 3)) & "|" & Trim(ar(i, 4))
t = d(zd)
If t = "" Then
k = k + 1
d(zd) = k
t = k
For j = 1 To 5
br(k, j) = ar(i, j)
Next j
End If
If VBA.Trim(ar(i, 19)) = "入库" Then
br(t, 6) = br(t, 6) + ar(i, 9)
Else
br(t, 7) = br(t, 7) + ar(i, 9)
End If
br(t, 8) = br(t, 6) - br(t, 7)
End If
Next i
With Sheets("库存表")
.[a1].CurrentRegion.Offset(2).Borders.LineStyle = 0
.[a1].CurrentRegion.Offset(2) = Empty
.[a3].Resize(k, UBound(br, 2)) = br
.[a3].Resize(k, UBound(br, 2)).Borders.LineStyle = 1
End With
MsgBox "ok!"
End Sub
|
|