Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 过江龙

[已解决]求老师帮忙,用代码解决,急等,谢谢!!!!

[复制链接]
 楼主| 发表于 2012-3-31 09:30 | 显示全部楼层
非常感谢老师,你的程序是将汇总表上的姓名与金额清除后,再将汇总出来的金额填写在汇总表上的,是吧。我是想将汇总出来的金额与汇总表上的金额对应相加。不知又该怎样写呢?
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2012-3-31 13:24 | 显示全部楼层
本帖最后由 zjdh 于 2012-3-31 13:25 编辑

Sub subM()
    Application.ScreenUpdating = False
    Set D = CreateObject("scripting.dictionary")
    Arr = Range("A2:B" & Range("A65536").End(3).Row)
    ALL = Arr(1, 2)
    For i = 2 To UBound(Arr)
        D(Arr(i, 1)) = D(Arr(i, 1)) + Arr(i, 2)
    Next
    PathName = ThisWorkbook.Path & "\*.xls"
    dirna = Dir(PathName)
    Do While dirna <> ""
        If dirna <> ActiveWorkbook.Name Then
            Set SourceBook = Workbooks.Open(ThisWorkbook.Path & "\" & dirna, 0, True)
            With SourceBook.Worksheets("在职")
                For Each c In .Range("B2:S2")
                    If c.Value Like "*失业*" Then
                        x = c.Column
                    End If
                Next c
                Arr = .Range("A4:P" & Range("A65536").End(3).Row)
            End With
            For i = 2 To UBound(Arr)
                If Not Arr(i, 1) Like "*合计*" Then D(Arr(i, 2)) = D(Arr(i, 2)) + Arr(i, x)
                ALL = ALL + Arr(i, x)
            Next
            SourceBook.Close False
        End If
        dirna = Dir
    Loop
    Range("A3:B1000").ClearContents
    Range("A3").Resize(D.Count, 1) = Application.Transpose(D.KEYS)
    Range("B3").Resize(D.Count, 1) = Application.Transpose(D.ITEMS)
    Range("B2") = ALL
    Application.ScreenUpdating = True
End Sub
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 09:37 , Processed in 0.205571 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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