找回密码
 成员注册
查看: 11307|回复: 1

[应用] 拆分Excel工作簿_代码方法_适合大型表格

[复制链接]
20 金钱 回复本帖可获得 2 金钱奖励! 每人限 1 次(中奖概率 70%)
发表于 2013-10-14 13:24:04 | 显示全部楼层 |阅读模式
相信大家肯定会接触到一份Excel工作簿中包含N个工作表的Excel文档的。
首先了解一下工作簿和工作表吧
这么理解我相信么有问题,工作簿是一本书,而工作表就是一页页的纸。实际上工作簿就是一个Excel文档里面包含了很多个工作表标签。
如图所示
(0 Bytes, 下载次数: 4287)
如果有一个Excel工作簿中有很多工作表包含了不同内容,需要把这些工作表给拆开保存成单独的一个个的文件。可以通过右键工作表标签,移动或复制,选择新工作簿,并注意勾选建立副本(否则原工作簿中的工作表就被移动走了)。
(0 Bytes, 下载次数: 4340)

(0 Bytes, 下载次数: 4269)
如果工作表不多这样做是很快的。
如果很多,那么通过code来可能会更快
(0 Bytes, 下载次数: 4285)
(0 Bytes, 下载次数: 4401)
(0 Bytes, 下载次数: 4281)
(0 Bytes, 下载次数: 4334)
(0 Bytes, 下载次数: 4282)
还是右键任何工作表标签,点击查看代码,弹出VB代码编辑窗口,点击菜单栏“插入”插入一个模块,输入以下代码(这里的代码注意红色标示处,他是拆分xlsx(Office 2007以上)文档的,如果是xls(老版本Office 2003)。将xlOpenXMLWorkbook替换成xlNormal,后面将两个代码导出为bas文件,使用时直接导入即可。需要注意的是,拆分的文档必须是保存的,如果新建的没有保存是无法拆分的。

Private Sub 分拆工作表()
       Dim sht As Worksheet
       Dim MyBook As Workbook
       Set MyBook = ActiveWorkbook
       For Each sht In MyBook.Sheets
           sht.Copy
           ActiveWorkbook.SaveAs Filename:=MyBook.Path & "\" & sht.Name, FileFormat:=xlOpenXMLWorkbook     '将工作簿另存为EXCEL默认格式
           ActiveWorkbook.Close
       Next
       MsgBox "文件已经被分拆完毕!"
   End Sub


按运行按钮或F5直接运行,程序会自动为你拆分工作簿并不会影响原工作簿。并在当前工作簿所在目录下生成所有工作表的工作簿。
拆分xls工作簿
Private Sub 分拆工作表()
       Dim sht As Worksheet
       Dim MyBook As Workbook
       Set MyBook = ActiveWorkbook
       For Each sht In MyBook.Sheets
           sht.Copy
           ActiveWorkbook.SaveAs Filename:=MyBook.Path & "\" & sht.Name, FileFormat:=
xlNormal     '将工作簿另存为EXCEL默认格式
           ActiveWorkbook.Close
       Next
       MsgBox "文件已经被分拆完毕!"
   End Sub

0 Bytes, 下载次数: 4289

回复

使用道具 举报

 楼主| 发表于 2013-10-14 13:26:47 | 显示全部楼层
bas文件

0 Bytes, 下载次数: 4424

0 Bytes, 下载次数: 4383

回复 支持 反对

使用道具 举报

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

本版积分规则

手机版|小黑屋|手机网页|计算机协会 ( 皖ICP备10201319号-5 )

GMT+8, 2025-5-1 15:45

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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