打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
多个Excel工作簿中特定内容汇总到一个工作表 | VBA实例教程

除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www.zhanzhanrufeng.com/cat4/90.html,VBA交流群273624828。

相信学了上一篇“多个Excel工作簿中的数据汇总到一个Excel中(1)”朋友们对汇总有了初步的认识,(1)中我们讲的是将整个表中的内容都汇总到一个表中,这次我们看下如何汇总表中的特定内容而不是全部内容。其实这个也很简单,只是让大家熟悉一下汇总的过程,上次我们选择的是全部的内容,这次只要选择特定单元格就可以了。

看例子。假设你是个理财公司的统计人员,公司有四种产品,每个营业部都有好几个团队,分部行政人员会每天给你发各营业部各团明细,你呢只需要汇总各个营业部的业绩上报,即你只需要汇总每个表的最后一行,但是最后一行到底是哪行又是不确定的,大家可以自己先下载示例自己试一下。下面上代码

Sub test()
Dim mypath, myfile, wb, i, j
Range("A1").CurrentRegion.Offset(1, 0).ClearContents  '开始提取之前清除除表头之外的内容
mypath = ThisWorkbook.Path & "\"         '找到当前工作簿的路径
myfile = Dir(mypath & "*.xlsx")          '遍历当前路径下的工作簿
Do While myfile <> ""                    '当找到的文件不为空时
If myfile <> ThisWorkbook.Name Then   '当找到的文件不是本工作簿时
Set wb = GetObject(mypath & myfile) '利用GetObject取得数据
With wb.Sheets(1)                   '对wb的sheet1进行操作
i = .[a1048576].End(xlUp).Row    '得到wb的最后一行
j = [a1048576].End(xlUp).Row + 1 '得到当前工作表的最后一行
Range("A" & j) = .Range("A1")    '开始赋值了
Range("B" & j) = .Range("B" & i)
Range("C" & j) = .Range("C" & i)
Range("D" & j) = .Range("D" & i)
Range("E" & j) = .Range("E" & i)
Range("F" & j) = .Range("F" & i)
End With
wb.Close                   '别忘了关掉,要不然越开越多电脑就瘫痪了
End If
myfile = Dir                  '去找下一个工作簿
Loop
End Sub

汇总的表要和那些明细表放同一个文件夹下,这样就可以用mypath = ThisWorkbook.Path & "\" 取得文件夹的路径了,i和j分别是取到明细表和汇总表的最后一行,End属性不明白的可以百度一下。提醒新手朋友们,在看代码的时候会有一些看不明白的地方,我也不可以面面俱到的都讲,其实只要百度一下很多问题都可以明白了,有问题先自己查是一种技能更是一种态度。本文示例文件下载http://pan.baidu.com/s/1voCiU

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
不要再用Ctrl C了,工作簿拆分、合并一键生成,工作再忙也要看……
VBA与Excel入门——Excel的三个基本对象VBA表示
Excel
用VBA提取路径下所有工作簿的工作表名(四个方法)
快速将多个excel表合并成一个excel表
多表合并,你要的全在这里了,收藏好了!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服