没有会员wps合并多个sheet_WPS 多个工作表快速合并至一个工作表

本文介绍了如何在WPS中快速合并多个工作表。首先,提到了使用WPS内置的合并表格功能,但其结果可能不理想。接着,重点介绍了使用JScript代码进行合并,该方法无需VBA环境,且代码透明,更安全方便。通过执行JScript代码,可以高效地合并工作表数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WPS多个工作表快速合并至一个工作表!

在工作中经常遇到需要将多个工作表中的数据合并到一个工作的情形,我们可以如何做呢,比如我们要合并一个成绩表,数据如下所示,要把一班、二班、三班的数据合并到汇总表中去:

c41e8e8fe1e3e998388c4a18b86e89a0.png
057601eb7d4905dac474379d3d118784.png
653bce57ea99c3cd2230ea79556cf1a3.png

方法一、利用WPS内置的合并表格功能

点击「数据」→「合并表格」,弹出对话框:

7584658ae726de5e5295c74e1969bd33.png

点击「开始合并」后,会生成一个新的表格,内容如下:

似乎结果并不是太理想。

19269013683a710b8b37e30324b35b03.png

方法二:JScript代码

使用JScript代码,解决起来非常轻松,而且适应性非常强,如下:

var app = GetObject('', 'KET.Application')var sheets = app.ActiveWorkbook.Sheetsvar arr = []; //arr用于保存合并的数据for (var i = 1; i <= sheets.Count; i++) { if (sheets(i).Name === '汇总表') { continue; } var r = sheets(i).UsedRange if (i === 1) { //复制标题行 arr.push((r.Range(r.Cells(1, 1), r.Cells(r.Columns.Count)).Value).toArray()) } for (var row = 2; row <= r.Rows.Count; row++) { //逐行将表格内容复制到数组 arr.push((r.Range(r.Cells(row, 1), r.Cells(row, r.Columns.Count)).Value).toArray()); }}var sheet = sheets("汇总表");with(sheet) { //将arr复制到汇总工作表 //Excel.array2dToSafeArray2d函数用于将Javascript转换成Excel能接受的二维数组 Range(Cells(1, 1), Cells(arr.length, arr[0].length)) = Excel.array2dToSafeArray2d(arr);}

在万能脚本程序中运行此段代码

b049a894447e11544071c6035adfe306.png

,得到的结果如下:

b9fcc6f9199a60f952f59d0d37994b80.png

你学会了吗?

是不是非常简单?

用JScript不用安装VBA运行环境,也不用将excel文件改成xlsm格式,代码透明公开,是不是更加安全和方便?


觉得好用可以收藏并分享给你的好友哦?

欢迎关注,下一讲我会告诉大家如何进行横向合并(栏目不同的表格)

WPS Spreadsheets 中,你可以使用“宏”功能来创建一个按键,用于合并多个工作表。以下是具体的步骤: 1. 打开 WPS Spreadsheets,并打开包含要合并多个工作表的工作簿。 2. 在功能区中的“开发”选项卡中,点击“宏”按钮。如果没有看到“开发”选项卡,请右键点击功能区,选择“自定义功能区”,然后勾选“开发”选项卡。 3. 在弹出的“宏”对话框中,点击“新建”按钮,输入一个宏的名称(比如“合并工作表”),然后点击“确定”。 4. 这将打开 Visual Basic 编辑器。在编辑器中,输入以下 VBA 代码: ```vba Sub 合并工作表() Dim ws As Worksheet Dim wsMerge As Worksheet Dim lastRow As Long Dim mergeStart As Boolean ' 创建一个新的工作表用于合并数据 Set wsMerge = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)) wsMerge.Name = "合并数据" ' 设置合并开始标志为 False mergeStart = False ' 循环遍历所有工作表 For Each ws In ThisWorkbook.Worksheets ' 跳过新创建的合并工作表 If ws.Name <> "合并数据" Then ' 获取当前工作表的最后一行 lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' 如果合并开始标志为 False,则将合并开始标志设置为 True,跳过当前工作表的第一行 If Not mergeStart Then mergeStart = True lastRow = lastRow - 1 End If ' 将当前工作表的数据复制到合并工作表的下一行 ws.Range("A2").Resize(lastRow, ws.UsedRange.Columns.Count).Copy _ Destination:=wsMerge.Cells(wsMerge.Cells(wsMerge.Rows.Count, 1).End(xlUp).Row + 1, 1) End If Next ws ' 自动调整合并工作表的列宽 wsMerge.UsedRange.Columns.AutoFit MsgBox "合并完成!" End Sub ``` 5. 关闭 Visual Basic 编辑器。 6. 在“宏”对话框中,选择刚才创建的宏(比如“合并工作表”),然后点击“添加”按钮。 7. 在“自定义功能区”对话框中,选择一个你想要添加该宏的位置(比如“主页”选项卡),然后点击“确定”。 8. 现在,在你选择的位置上会出现一个新的按钮,点击该按钮就会执行你的宏,合并多个工作表。 请注意,WPS Spreadsheets 的宏功能与 Microsoft Excel 的 VBA 宏有些许差异,因此在编写和执行宏时可能会有一些细微的差别。以上给出的示例代码在 WPS Spreadsheets 中应该可以正常工作,但如果遇到问题,请根据具体情况进行调整。 希望这些步骤能帮助你创建一个按键来合并多个工作表!如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值