如何用VBA将Excel中的数据分类加总并显示
时间:2011-08-08
来源:互联网
请教,如何将附件中的数据按Picklist#, Item Number, Warehouse, Location,加总Required Qty,并将结果显示在下一行,增加的这一行只要数量单位。处理前后的结果见附件中的Before,After,谢谢。
[ 本帖最后由 Yong.Xu 于 2011-8-8 10:20 编辑 ]
Picklist_output3.zip(6.72 KB)
[ 本帖最后由 Yong.Xu 于 2011-8-8 10:20 编辑 ]
附件

2011-8-8 10:19, 下载次数: 8
作者: Yong.Xu 发布时间: 2011-08-08
复制内容到剪贴板
s = Range("a1:h" & [a65536].End(3).Row)
For i = 1 To UBound(s) - 1
If s(i, 3) = s(i + 1, 3) Then
k = s(i, 6) + s(i + 1, 6): i = i + 1
Do
If s(i, 3) = s(i + 1, 3) Then
k = k + s(i + 1, 6): i = i + 1
Else
i = i + 1: Rows(i).Insert Shift:=xlDown
Cells(i, 6) = k: Cells(i, 7) = s(i - 1, 7)
GoTo p0:
End If
Loop
End If
p0:
Next
End Sub
代码:
Sub yyy()s = Range("a1:h" & [a65536].End(3).Row)
For i = 1 To UBound(s) - 1
If s(i, 3) = s(i + 1, 3) Then
k = s(i, 6) + s(i + 1, 6): i = i + 1
Do
If s(i, 3) = s(i + 1, 3) Then
k = k + s(i + 1, 6): i = i + 1
Else
i = i + 1: Rows(i).Insert Shift:=xlDown
Cells(i, 6) = k: Cells(i, 7) = s(i - 1, 7)
GoTo p0:
End If
Loop
End If
p0:
Next
End Sub
作者: 白云2011 发布时间: 2011-08-08
楼上的很强大,程序相当简洁。
请问要是有些Item Number的记录没有相连如何处理?具体数据请看附件黄色部分,谢了。
Picklist_output4.zip(9.88 KB)
请问要是有些Item Number的记录没有相连如何处理?具体数据请看附件黄色部分,谢了。
附件

2011-8-8 13:58, 下载次数: 5
作者: Yong.Xu 发布时间: 2011-08-08
复制内容到剪贴板
Dim s, i%, j%, k%
s = Range("a1:h" & [a65536].End(3).Row)
For i = 1 To UBound(s) - 1
If s(i, 3) = s(i + 1, 3) Then
k = s(i, 6) + s(i + 1, 6): i = i + 1
Do
If s(i, 3) = s(i + 1, 3) Then
k = k + s(i + 1, 6): i = i + 1
Else
i = i + 1 + j: Rows(i).Insert Shift:=xlDown
Cells(i, 6) = k: Cells(i, 7) = s(i - 1, 7)
j = j + 1: GoTo p0:
End If
Loop
End If
p0:
Next
End Sub
代码:
Sub aa()Dim s, i%, j%, k%
s = Range("a1:h" & [a65536].End(3).Row)
For i = 1 To UBound(s) - 1
If s(i, 3) = s(i + 1, 3) Then
k = s(i, 6) + s(i + 1, 6): i = i + 1
Do
If s(i, 3) = s(i + 1, 3) Then
k = k + s(i + 1, 6): i = i + 1
Else
i = i + 1 + j: Rows(i).Insert Shift:=xlDown
Cells(i, 6) = k: Cells(i, 7) = s(i - 1, 7)
j = j + 1: GoTo p0:
End If
Loop
End If
p0:
Next
End Sub
复制内容到剪贴板
For i = 1 To UBound(s) - 1
If Cells(i, 3) = Cells(i + 1, 3) Then
k = Cells(i, 6) + Cells(i + 1, 6): i = i + 1
Do
If Cells(i, 3) = Cells(i + 1, 3) Then
k = k + Cells(i + 1, 6): i = i + 1
Else
i = i + 1: Rows(i).Insert Shift:=xlDown
Cells(i, 6) = k: Cells(i, 7) = Cells(i - 1, 7)
GoTo p0:
End If
Loop
End If
p0:
Next
End Sub
代码:
Sub bb()For i = 1 To UBound(s) - 1
If Cells(i, 3) = Cells(i + 1, 3) Then
k = Cells(i, 6) + Cells(i + 1, 6): i = i + 1
Do
If Cells(i, 3) = Cells(i + 1, 3) Then
k = k + Cells(i + 1, 6): i = i + 1
Else
i = i + 1: Rows(i).Insert Shift:=xlDown
Cells(i, 6) = k: Cells(i, 7) = Cells(i - 1, 7)
GoTo p0:
End If
Loop
End If
p0:
Next
End Sub
作者: 白云2011 发布时间: 2011-08-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28