【WPS应用案例】JS宏批量将工作簿合并为工作表,免费实现会员功能

懒人办公

创作者俱乐部成员

【案例】在下面的文件夹中,有多个工作簿,现在需要将所有工作簿中的工作表合并到一个新工作簿中,并且新工作簿的每个工作表以”原工作簿名+原工作表名“命名。

【结果】结果如下图所示:

相当于这个会员功能:

但现在我们要用免费的方法,不需要会员。

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

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

function 将多个工作簿合并为多个工作表(){

//本表所在文件夹下的待合并文件夹,可以根据实际情况自己更换

p = ThisWorkbook.Path + "\\待合并文件\\"

f = Dir(p+'*.xls*') //遍历excel文件

let nb = Workbooks.Add() //新建一个工作簿定义为nb

while(f){ //循环直到文件名不为空

fn=f.replace('.xlsx','').replace('.xls','') //得到原工作簿名称(不带后缀)

let wb = Workbooks.Open(p + f) //打开要合并的工作簿

for(sh of wb.Sheets){

sh.Name=fn+sh.Name //用“原工作簿名+原工作表名”命名

sh.Copy(nb.Sheets.Item(1)) //复制工作表到新工作簿中

}

wb.Close(false) //关闭要合并的工作簿

f = Dir() //循环下一个文件

}

}

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

https://kdocs.cn/l/clU0TALZdG9m

贵州省
浏览 7027
4
26
分享
26 +1
24
4 +1
全部评论 24
 
改进了一下,将总表和带合并的文件放一起,可以实现将数据合并到当前打开的单元簿中
· 广东省
1
回复
 
能否优化下,遇到比较长的那种数据,会被转换为像科学计数那种
· 贵州省
回复
 
新建复制
· 浙江省
回复
 
很管用,很好
· 贵州省
回复
 
真的很好,很实用,学习到了,谢谢
· 浙江省
回复
 
很管用,学习了
· 广东省
回复
 
很好!学习了。
· 江苏省
回复
 
很受用,学习了
· 河北省
回复
 
学习了。
· 江苏省
回复
 
很实用,学习了
· 北京
回复
 
厉害了👍🏻
· 山西省
回复
 
不错
· 广东省
回复
 
这个功能太实用了
· 云南省
回复
 
感谢分享,👍
· 广东省
回复
 
JS宏批量管理方便快捷,打打减少工作时间,冲冲冲
· 四川省
回复
 
感谢大佬分享,又学到新知识
· 广东省
回复
 
大佬,感谢分享,省钱小妙招又get了。
· 北京
回复
 
张俊

WPS函数专家

大佬,像这样的将会员功能免费化的JS宏代码多多分享。
· 上海
回复
懒人办公

创作者俱乐部成员

哈哈,一直在朝这个方向努力
· 贵州省
1
回复
 
ice y

创作者俱乐部成员

又学会了一个知识
· 四川省
回复
懒人办公

创作者俱乐部成员

你试试用AI能不能操作
· 贵州省
回复
 
懒人办公

创作者俱乐部成员

文末有素材代码,自行下载练习,有问题欢迎评论
· 贵州省
回复