【WPS应用案例】JS宏批量将工作表拆分为独立工作簿

懒人办公

创作者俱乐部成员

【案例】在下面的工作簿中,有多张工作表,现在我们需要将每个工作表拆分为独立的工作簿,并按照工作表名称命名。

【结果】结果如下,所有工作表都被拆分到同一个文件夹中

【操作效果】具体操作效果如下:

【代码】具体代码如下,可按ALT+F11打开WPS宏编辑器,复制下面的代码粘贴到编辑器中。

function 将工作表拆分为工作簿(){

//禁用Excel的弹出警告,避免在拆分过程中弹出确认对话框干扰流程。

Application.DisplayAlerts=false;

//获取当前工作簿的引用,用于后续的操作。

let tb= ThisWorkbook;

//定义保存拆分后的工作簿的路径,其中“/拆分文件夹/”是文件夹的名字,可以自行修改为需要的名字。

let p=tb.Path + "/拆分文件夹/"

//遍历当前工作簿中的每一个工作表。

for(sh of tb.Sheets){

//将当前工作表复制,这样它就不再属于原来的工作簿,而是新工作簿的一部分。

sh.Copy();

//将新工作簿赋值给变量ab

let ab=ActiveWorkbook

//将新复制的工作簿保存到之前定义的路径下,文件名为原工作表名(如“Sheet1”)后缀为“.xlsx”。

ab.SaveAs(p + sh.Name + ".xlsx");

//关闭新创建的工作簿,因为不需要它继续保持打开状态。

ab.Close();

//执行DoEvents语句以处理其它等待的事件,例如鼠标点击等,提高操作效率。

DoEvents();

}

//恢复Excel的弹出警告功能。

Application.DisplayAlerts=true;

//弹出消息框,通知用户工作簿已经拆分完毕。

MsgBox( "工作簿拆分完毕!");

}

【素材下载】点击下方链接,下载文件本地文件夹,并在文件夹中新建一个名为”拆分文件夹“的文件夹。

https://kdocs.cn/l/cf7coTg9wrMQ

贵州省
浏览 8283
1
24
分享
24 +1
30
1 +1
全部评论 30
 
老师,帮忙看看这是为啥呢
· 大雅加达
回复
 
我用一句代码解决的问题,你非要写这么 多代码 ThisWorkbook.神秘对象.SplitBook(输出路径)
· 宁夏
回复
 
能否加入判断拆分文件夹不存在就新建一个文件夹来存储?
· 广东省
回复
 
您好,请问生成的工作表,打开之后没有数据是怎么回事呀。占用30kb内存,但是打开之后没有内容
· 四川省
回复
 
工作表 复制 保存
· 浙江省
回复
 
老师好,请问这个是哪里错了呢
· 福建省
回复
懒人办公

创作者俱乐部成员

可能是因为你没有拆分文件夹
· 贵州省
回复
 
好东西呀这!
· 广东省
回复
 
老师您好 你真棒
· 新疆
回复
 
您好老师
· 新疆
回复
 
非常实用 快捷
· 福建省
回复
 
方便快捷
· 陕西省
回复
 
实用
· 云南省
1
回复
 
非常实用
· 青海省
回复
 
非常实用的技巧,拯救职场表姐表妹,学到了
· 河南省
回复
 
技术很牛,我这办公小白学会不少,感谢感谢🙏🏻感谢
· 陕西省
回复
 
大佬的技术真的改变了我们这些小白的工作啊,太好用太佩服了!!多多开发一些,拯救我们职场新人。
· 辽宁省
回复
 
太实用了 办公的神助攻
· 浙江省
回复
 
不错
· 江苏省
回复
 
说实话,不看好JS宏,要学不如学VBA 学VBA后,想要再深入,还能无缝接轨python的xwings库。(excel将来会接入python) 办公室的表哥表姐总不能学js宏后,跑去写油猴脚本把。
· 广东省
回复
懒人办公

创作者俱乐部成员

悄悄告诉你,我也是从VBA转过来的,因为我发现,几乎所有小白的电脑上,都只有WPS,我用VBA做好模板发给他们,他们还要安装VBA插件,关键好多人不会安装,每次都搞得很痛苦,所以我才不得不转JS宏
· 贵州省
回复
 
练习在哪里,没找到。wps功能越来越强大,学懂弄通,服务企业发展。
· 山西省
1
回复
懒人办公

创作者俱乐部成员

文末有链接
· 贵州省
回复