ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何将一张工作簿所有工作表分单独保存?

如何将一张工作簿所有工作表分单独保存?

作者:绿色风 分类: 时间:2022-08-17 浏览:393
楼主
omnw
Q:如何将一张工作簿所有工作表分单独保存?
A:可以使用如下代码将一个工作簿中所有的工作表都单独保存成一个工作簿,并以工作表的名称命名工作簿。

  1. Private Sub 分拆工作表()
  2.     Dim sht As Worksheet
  3.     Dim MyBook As Workbook
  4.     Set MyBook = ActiveWorkbook
  5.     For Each sht In MyBook.Sheets
  6.         sht.Copy
  7.         ActiveWorkbook.SaveAs Filename:=MyBook.Path & "\" & sht.Name, FileFormat:=xlNormal     '将工作簿另存为EXCEL默认格式
  8.         ActiveWorkbook.Close
  9.     Next
  10.     MsgBox "文件已经被分拆完毕!"
  11. End Sub
2楼
omnw
感谢劳版的指正,代码进行了精简。
3楼
yncxxmj
非常实用,我正在找。谢谢楼主。
4楼
xinya
太实用了,已用上,感谢感谢
5楼
这幸运男孩_
非常感谢楼主!小的想提一个问题,能实现弄每个文件的1、2、3提取文件内容,然后组合成新的“123”吗?
6楼
羲少
不是一般的强。很想静下心来学学vba!
7楼
hl_irnt
学习可以实践哈
8楼
kenask
参考一下~~~~
9楼
鸿恒之心
没有演示啊!
10楼
In-coming
很强
11楼
jjw0927
非常实用,谢谢
12楼
dannyduo
**功能,非常实用
13楼
猫_3_货°°°
   偶最后一步失败了 弹出错误对话框
14楼
kevinlao
我想问,如何把这个代码保存下来,下次可以直接使用呢?
15楼
七七123
为什么我的excel没有工具这个选项啊!office2010
16楼
七七123
错了。是office2007
17楼
0滨0
alt+F11
18楼
0滨0
有拆分,那又如何“还原”呢?就是怎样把三个只有一张表的工作薄合并成一个有三张表的工作薄。谢谢
19楼
七七123
谢谢!已成功拆分!
20楼
leochi
怎么保存?1.jpg
 
21楼
rjgx_yj
成功拆分的sheet保存到哪里去了呢?
22楼
rjgx_yj
找到了找到了
23楼
橙子橙子
真强大
24楼
doublue
楼主,我已经将一个工作薄按文件类型为“启用宏的工作薄”保存,但用你编的这个代码不能执行,我用了《EXCEL2010VBA编程与实践》中,疑难104中的代码,但执行时仍然提示“无法在未启用宏的工作薄中保存VB”,这是什么原因呢?请老师指教,谢谢!
25楼
doublue
楼主,我已经将一个工作薄按文件类型为“启用宏的工作薄”保存,但用你编的这个代码不能执行,我用了《EXCEL2010VBA编程与实践》中,疑难104中的代码,但执行时仍然提示“无法在未启用宏的工作薄中保存VB”,这是什么原因呢?我已把工作薄与报错截图上传,请老师指教,谢谢!
耗材发放表.rar
26楼
蓝琉璃
运行的时候,代码中“ sht.Copy”显示有误,请问要怎么改呢?新手未用过宏,一头雾水啊,谢谢楼主
27楼
491007476
运行不了,“Private Sub 分拆工作表()” 这句有误,被标黄色,请指导
28楼
xuqifeng
正需要,谢谢
29楼
chengcheng3940
楼主能详尽解释一下操作步骤吗?
30楼
icenotcool


31楼
糖裹の僮話
可是对于那种完全不能直接打开文件的该怎么拆分呢?
32楼
糖裹の僮話
怎样才能把Excel里的所有链接都清除,文件打不开啊,文件是被里面的链接占用了。
33楼
gshshzr
很厉害
34楼
gshshzr
很厉害
35楼
dahuli_fox
很好用,感谢了!
36楼
吞吞吐吐
为什么我拆分出来的文件格式没有了?
37楼
yusmile0618
楼主真赞!
有个问题想请教下,就是如果我一个文件夹里有800多个excel,每个excel有7个sheet,我想将每个excel中的第4个sheet提取出来,一共生成800多个新的excel,命名为excel名称+sheet名称,(或者直接生成一个excel包含800多个sheet4的结果),请问应该用怎样的宏代码呢?

38楼
yusmile0618
楼主真赞!
有个问题想请教下,就是如果我一个文件夹里有800多个excel,每个excel有7个sheet,我想将每个excel中的第4个sheet提取出来,一共生成800多个新的excel,命名为excel名称+sheet名称,(或者直接生成一个excel包含800多个sheet4的结果),请问应该用怎样的宏代码呢?
39楼
eeyoreliu
感激  厉害
40楼
omnw
请单独发帖提问吧!
41楼
开心笑羊
确实很精炼。
42楼
yusmile0618
已发帖,多谢提醒

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap