|
原表格是规格不一,厚度不一。首列是厚度,有多个厚度。举例:12、15、18、20厚。厚度所对应的行分别有数值,代表件数。
现在要按等级规格厚度分类汇总
统计数据前必须先排序,我之前的做法是,先在首例厚度进行筛选,筛选空值不显示,然后有数据的会全出来,然后再人工在旁边插入一行,人工一个一个的手工输厚度及件数。
因为每天要统计表格数据,而且工作量大,现在想要通过VBA的方式快速排序。
求大家指教,在线等,谢谢。
mind1238 发表于 2016-2-27 11:19
先谢谢你为我解答,意思大概是这样的。
但是我现在还有一个问题,就是如果我后面还跟着一列备注的话,能 ...
严格说,你这个是分类汇总,不是什么排序
你应该将原始表,希望得到的结果表,一次性告知清楚,源数据也在变,程序调整还是麻烦的,除非你自己懂编程 - Sub tr()
- Dim br
- p = 1
- n = [B65536].End(3).Row
- ar = Range("A3:O" & n)
- cr = Range("A2:K2")
- ReDim br(1 To 15, 1 To p)
- For i = 1 To n - 2
- sr = ar(i, 1)
- For j = 4 To 11
- js = ar(i, j)
- hd = cr(1, j)
- If js <> "" Then
- br(j, p) = js
- br(12, p) = hd: br(13, p) = js
- br(14, p) = ar(i, 14): br(15, p) = ar(i, 15)
- For k = 1 To 3
- br(k, p) = ar(i, k)
- Next
- p = p + 1
- ReDim Preserve br(1 To 15, 1 To p)
- End If
- Next
- Next
- With Worksheets(2)
- .[A3:P5000].ClearContents
- .[A3].Resize(p, 15) = WorksheetFunction.Transpose(br)
- .Activate
- End With
- End Sub
复制代码
|
|