一键拆分工作表至独立工作簿的宏代码教程 点击使用AI助手 了解更多
发布于 2024-10-20 liusiyang 280 编辑
【案例】在下面的工作簿中,有多张工作表,现在我们需要将每个工作表拆分为独立的工作簿,并按照工作表名称命名。
【结果】结果如下,所有工作表都被拆分到同一个文件夹中
【操作效果】具体操作效果如下:
【代码】具体代码如下,可按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
原文链接:https://bbs.wps.cn/topic/9200