打开APP
userphoto
未登录

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

开通VIP
Excel多文件合并(VBA方案)

这个问题是来自MM的。MM财务工作和Excel比较多。最近MM公司要统计各分公司的数据。由于城市比较多,需要汇总的工作量比较大。而且有很大一部分数据基础工作是Copy,Paste 数据。为表达对MM的关心和爱护(嘻嘻),写了这么一段VBA,可以大大减轻MM的工作量。

我用一个简单的原型来说明这个问题。

Excel文件:上海.xsl、北京.xsl、广州.xsl。这些数据由各地分公司提供,以3个城市说明问题。

MM的工作(这里忽略格式调整等):

1:将上面3个xsl文件拷贝到一个全国.xsl中。也就是要有 上海.sheet、北京sheet、广州sheet  3个sheet

2:同时又要将3个sheet的数据汇总到一个全国sheet中。

3:最终结果就是一个全国.xsl文件包含4个sheet(全国、上海、北京、广州)

最早想的办法是将Excel文件导入Access数据库,我再将数据导出。毕竟搞IT的,SQL语法对我来说没问题。但在导入Access中发现Excel文件有合并单元格问题,而且几个Excel列数不一样。发现导入Access对Excel文件本身要求高,方案失败。

没办法就只能使用宏来模拟用户的操作。已经很久没写VBA了,特意查了一下最早的一个是2006-12-28的Excel文件。(*^__^*),都是一年以前的事情了。本身就是现学现用,又这么长时间,基本忘过。好在这东西不复杂,看看原来的资料,再网上搜索了一下。一个晚上搞定了。

关键代码如下(伪代码,):

--调用选取文件对话框,选择多个xls文件

Filenames = Application.GetOpenFilename('Microsoft Office Excel Files (*.xls), *.xls', , '请选取文件', , True)

--循环FileNames,Copy当前文件内容,粘贴到新增的Sheet中(完成多个XLS 合并到一个xsl中),再将数据合并到全国sheet中

Workbooks(FileNames(i)).Worksheets(1).UsedRange.Copy

Worksheets.Add after:=Worksheets(1)

ActiveSheet.Paste

Workbooks(“总表名”).Worksheets(thisheetname).[A65536].End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

原代码我就不提供了,这里提供方案下载,如果你有类似的操作,可以使用这个Excel。

合并DEMO方案Excel_VAB1

Google 标记: Excel, VBA
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
总结Excel之VBA编程之引用单元格、区域的各种方法上篇
自学资料(Excel VBA)[收集整理10]
vba excel编程三日谈(1)
如何同步更新两个或多个工作薄的内容 Excel教程 office技巧 盲人之家 中国爱盲互联网
VBA 工作簿 操作
VBA中操作Excel常用方法总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服