【WPS应用案例】批量合并工作簿,免费实现终极会员功能

懒人办公
懒人办公

11月优秀创作者

今天这个案例是批量操作的终极应用,学会这个案例,今后的任何批量操作,你都可以为所欲为。

【案例】现在文件夹中有很多个工作簿,我们需要将每个工作簿的活动工作表数据合并到一起。

相当于下面这个会员功能:

现在我们用JS宏来免费实现这个功能。

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

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

function 合并工作簿() {

let data = [] //定义名为data的数组,用于存放合并后的数据

let fd = Application.FileDialog(msoFileDialogFilePicker) //打开文件选择器

fd.Filters.Clear() //清除文件选择器内容

fd.Filters.Add('Excel文件', '*.xls;*.xlsx;*.xlsm') //显示EXCEL文件

fd.Title = '请选文件' //设置文件选择器标题

if (fd.Show() != -1) { //如果不选择任何文件

alert('你没选中文件!') //弹出提示

return; //结束退出函数

}

t = parseInt(InputBox("请输入标题行数","标题行数",1)); //标题行数,接受用户输入

for (let i = 0; i < fd.SelectedItems.Count; i++) { //遍历文件

let f=fd.SelectedItems.Item(i + 1) //将文件名赋值给变量f

let wb = Workbooks.Open(f) //打开工作簿,赋值给对象wb

let sh = wb.ActiveSheet //将活动工作表赋值给对象sh

let ar = sh.Range('A1').CurrentRegion.Value2 //将活动工作表数据写入数组ar

ar=ar.map((col)=>['['+f+']'+sh.Name,...col]) //第一列添加工作簿和工作表名

wb.Close(false) //关闭工作簿(不保存)

if(i > 0) ar.splice(0,t) //去掉标题行

data = data.concat(ar) //合并数组

}

data[0][0]='工作簿工作表名' //在第一列首行写入标题

Workbooks.Add() //新建工作簿

let rg=ActiveSheet.Range('a1')

rg.Resize(data.length,data[0].length).Value2=data //将合并合并后的数据写入新工作簿活动工作表

}

【素材下载】点击下方链接,下载文件本地文件夹,在本地文件夹中打开,点击“批量合并工作簿”按钮,即可使用合并功能。

https://kdocs.cn/l/crHXJZE0v0qr

贵州省
浏览 2932
2
24
分享
24 +1
24
2 +1
全部评论 24
 
那甚
感谢楼主,终于找到了
· 浙江省
回复
 
半夏锦年
合并的几十万大量数据的时候,会报错。。。。
· 重庆
回复
 
若树
带JS宏的多个表格可以合并吗?
· 浙江省
回复
 
兜兜
非常实用,受教了
· 甘肃省
回复
 
婷婷
强大!
· 广东省
1
回复
 
田田
太方便了
· 上海
回复
 
;丁
很有帮助,方便好用
· 甘肃省
回复
 
Joker 
很方便,很实用
· 福建省
回复
 
WPS_1669780346
方便,好用
· 广东省
回复
 
梅哥哥
代码很强大很奥妙,实现很多需要的功能,学习了
· 重庆
回复
 
白开水
特别实用,非常感谢
· 广西
回复
 
YU
学到了
· 江苏省
回复
 
往事随风
这个就很棒,完美解决大量工作簿合并的需求
· 内蒙古
回复
 
北一
学到啦学到啦
· 广东省
回复
 
Heart disease.
这个东西难住我好久了, 今天终于找到啦
· 山西省
回复
 
解学振
不错,学习
· 江苏省
回复
 
张俊
张俊

社区优秀创作者

大佬,请继续对超级会员功能下手
· 上海
回复
懒人办公
懒人办公

11月优秀创作者

搞点常用的就行喽
· 贵州省
2
回复
 
石家伦
以前是这样的批量合并工作簿的步骤: 打开WPS表格软件,并创建一个新的工作簿作为目标文件。 在目标文件的第一个工作表中,选择一个单元格作为合并后数据开始的位置。 在WPS表格中,选择“数据”选项卡,然后找到“外部数据”组,点击“从其他文件合并”。 弹出的对话框中,选择要合并的工作簿文件,并点击“打开”按钮。 在下一个对话框中,选择需要合并的工作表,并使用“添加到目标区域”按钮将其添加到合并后数据的位置。 可以通过在目标区域上方选择“选项”来自定义合并选项,然后点击“确定”进行合并。 最后,将保存合并后的工作簿文件并进行命名 现在秒合并,牛!
· 贵州省
回复
懒人办公
懒人办公

11月优秀创作者

只要能合并就好,用什么方法都是可以的
· 贵州省
回复
 
舍得舍不得1401487689
这个就很棒,完美解决大量工作簿合并的需求,相当于会员功能了又不用每个月交会员费。
· 上海
回复
懒人办公
懒人办公

11月优秀创作者

哈哈,不想充值会员,就要提升技术
· 贵州省
回复
 
懒人办公
懒人办公

11月优秀创作者

今天这个案例是批量操作的终极应用,学会这个案例,今后的任何批量操作,你都可以为所欲为。
· 贵州省
回复