Excel精英培训网

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

[已解决][求助]多工作簿汇总

  [复制链接]
发表于 2008-9-27 22:34 | 显示全部楼层 |阅读模式

    我想把语文科,数学科,英语科这三个工作簿的数据汇总到"汇总表"里,我试用公式链接,最终还是不理想,本人对vba又不懂,希望高手们用vba帮我解决一下这个难题.只要点击按扭"汇总"数据就自动生成如附件一样的数据表,注意,所有的工作簿都以进行了保护,但每个工作簿的数据单元格都是在"永许拥护编辑区域"内,姓名均相同,要求在保护状态下进行.老弟在这里先谢谢了.

7MoatCam.rar (7.34 KB, 下载次数: 70)

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2008-9-29 19:35 | 显示全部楼层
本帖最后由 爱疯 于 2011-10-21 16:44 编辑

用VBA做了一个,已经可以实现楼主的要求:

[hide]

KM7LQaUy.rar (22.27 KB, 下载次数: 82)

回复

使用道具 举报

 楼主| 发表于 2008-9-29 22:09 | 显示全部楼层

感谢laosanjie兄弟的帮忙,我下来试了还是不行
回复

使用道具 举报

发表于 2008-10-5 20:06 | 显示全部楼层    本楼为最佳答案   

Sub yy()
 Application.ScreenUpdating = False
   Set aw = ThisWorkbook
   ar = aw.Sheets("汇总表").Range("d8:g28")
      Set d = CreateObject("scripting.dictionary")
      For i = 1 To UBound(ar)
        If Not d.exists(ar(i, 1)) Then d.Add ar(i, 1), i
      Next
        p = aw.Path & "\"
        f = Dir(p & "*.xls")
        Do While f <> ""
          If f <> ThisWorkbook.Name Then
            Set wk = GetObject(p & f)
            ar2 = wk.Sheets(1).Range("e9:f29")
              Set c = aw.Sheets("汇总表").Range("d7:g7").Find(Left(wk.Name, Len(wk.Name) - 4))
                For i = 1 To UBound(ar2)
                  If d.exists(ar2(i, 1)) Then
                    ar(d(ar2(i, 1)), c.Column - 3) = ar2(i, 2)
                  End If
                Next
            wk.Close False
           End If
        f = Dir
        Loop
   aw.Sheets("汇总表").Range("d8:g28") = ar
 Application.ScreenUpdating = True
End Sub

 

Xizgxd0E.rar (9.1 KB, 下载次数: 92)
回复

使用道具 举报

发表于 2008-12-16 10:48 | 显示全部楼层

用外部引用+Vlookup就足够了,每次更新下链接就行了,用VBA写写还挺麻烦的

回复

使用道具 举报

发表于 2017-10-12 06:06 | 显示全部楼层
学习中
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-31 02:56 , Processed in 0.536622 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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