首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

1分钟学会多工作簿合并神技,不骗你!

这段时间,真的操碎了心,使出十八般武艺教你合并统计。奈何还是有一部分人学不会,今天的文章,卢子敢保证,只要你不傻,都可以学会。

系统导出的数据一般都可以选择非office,也就是csv格式,今天就是讲合并多个合并多个后缀为csv格式的工作簿。

VIP学员的问题,要将多个工作簿合并在同一个工作簿的多个工作表,再进行逆向操作,将多个工作表拆分成多个工作簿。

如果仅仅是3个,Ctrl+C还是很快的,但问题是,有可能是30个,甚至更多,那就要按到手酸。

刚好前几天也有读者留言要类似的功能,今天,卢子就分享2个模板,让你轻松一键实现拆分、合并。

1.多个工作表拆分成多个工作簿

在VBA后台,运行代码,观察左边,你会看到一个个工作簿拆分出来,稍等几秒,就拆分好了。

Sub 拆分工作表()

Dim b As Worksheet

Excel.Application.ScreenUpdating = False

For Each b In Sheets

b.Copy

Excel.ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & b.Name & ".xlsx"

Excel.ActiveWorkbook.Close

Next

Excel.Application.ScreenUpdating = True

End Sub

前一阵子搞了一个VBA系列专题,估计有的读者已经忘了,这里再说明一下如何使用代码?

复制代码,点开发工具,VB编辑器,插入模板,将代码粘贴进去。

2.多个工作簿合并成多个工作表

将Excel不加班多工作簿合并模板放在同一个文件夹内。

复制代码,点开发工具,VB编辑器,插入模板,将代码粘贴进去。

Sub 合并工作簿()

Dim Wb As Workbook, MyPath As String, File, Sh_n As String

Application.ScreenUpdating = False

Rem 关闭屏幕刷新

MyPath$ = ThisWorkbook.Path & "\"

Rem 获取当前工作簿路径

File = Dir(MyPath & "*.xls*")

Rem 获取路径下所有Excel文件

Do While File "" '遍历所有文件

If File ThisWorkbook.Name Then '不合并当前工作簿

Set Wb = Workbooks.Open(MyPath & File)

Rem 依次打开工作簿

Sh_n = StrReverse(Mid(StrReverse(Wb.Name), InStr(StrReverse(Wb.Name), ".") + 1))

Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

ActiveSheet.Name = Sh_n

Rem 将第一个表复制到当前工作簿的最后一个工作表

Wb.Close False '关闭工作簿 不保存

End If

File = Dir

Rem 循环下一个工作簿

Loop

Application.ScreenUpdating = False

Rem 打开屏幕刷

End Sub

VBA可以直接在后台运行,也可以直接插入一个按钮或者图片来运行。

在开发工具,插入一个按钮,并重命名。

点按钮运行,稍等片刻,就合并完成。

模板在手,以后不管要拆分、合并,都是轻轻松松一键搞定,再也不用为这些事发愁。

作者:卢子

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200714A0GNM900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券