Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1700|回复: 0

excel封装DLL问题,VBA代码如下

[复制链接]
发表于 2013-5-22 07:34 | 显示全部楼层 |阅读模式
以下代码在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版 做的,里面的宏能正常运行。

计算表.rar

77.07 KB, 下载次数: 13

2007

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-14 21:38 , Processed in 0.222612 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表