|
以下代码在EXCEL宏里能正常运行,
Sub huizong()
Dim r, data_str
Dim sht As Worksheet, sht_Data As Worksheet
Dim c As Range
Dim wsf As WorksheetFunction
Set wsf = Application.WorksheetFunction
Set sht = Worksheets("拆单")
sht.Range("AA:AF").Clear ' 清除原有汇总数据
With sht
.Range("f3:k3").Copy Destination:=.Range("aa1") ' 复制标题行
For r = 4 To 400 ' 请修改为实际的数据行数
If .Range("I" & r) <> "" Then ' 跳过空行
Set c = .Range("AA:AA").Find(data_str, LookIn:=xlValues, lookat:=xlWhole) ' 在分类汇总表中查找相同数据项
If c Is Nothing Then
Set c = .Range("AA1048576").End(xlUp).Offset(1, 0) ' 如果未找到,则定位新记录行
c.Offset(0, 1) = .Range("G" & r).Value ' 复制 尺寸1 到汇总表
c.Offset(0, 2) = .Range("H" & r).Value ' 复制 尺寸2 到汇总表
c.Offset(0, 3) = .Range("I" & r).Value ' 复制 材料 到汇总表
c.Offset(0, 5) = .Range("K" & r).Value ' 复制 处理方法 到汇总表
c = data_str ' 设置检索索引
End If
c.Offset(0, 4) = c.Offset(0, 4) + .Range("J" & r) ' 统计数量
End If
Next r
.Range("AA:AF").Sort key1:=.Range("AD1"), order1:=xlAscending, key2:=.Range("AC1"), order2:=xlDescending, key3:=.Range("AB1"), order1:=xlAscending, Header:=xlYes ' 排列汇总数据
' 清除辅助索引
.Range("AA:AA").Clear
MsgBox "已经完成!"
End With
End Sub
不知道如何修改,请大侠赐教!
附件是用EXCEL2007版 做的,里面的宏能正常运行。
|
|