WPS宏实现Sheet页合并功能

把表格中N个Sheet页数据合并成一个新的Sheet页

function 合并Sheet页() {
    
    //获取工作表对象
    var ws = ThisWorkbook.Worksheets;
    
    //创建名称为 合并页 的Sheet页,如果存在名称叫合并页的Sheet页,这里会报错,没做判断删除
    var ws1 =  ws.Add();
    ws1.Name = "合并页";
    
    //先把表头复制过去
    ws.Item(2).Cells(1,1).Rows.EntireRow.Copy(ws1.Cells(1, 1));

     
    //获取所有Sheet页对象
    var worksheetObjects = {};
    var sheetNum = ws.Count;
    //console.log("Sheet页数量:"+sheetNum);
    //这里i从2开始,把新创建的合并页抛出去
    for(i = 2; i < sheetNum+1; i++){
        var sheetName = ws.Item(i).Name;
        //console.log("第"+i+"个"+"Sheet页名称:"+sheetName);
        worksheetObjects[sheetName] = ws.Item(sheetName);    
        
        //每个Sheet页从第二行开始复制
        var lastCol = worksheetObjects[sheetName].Cells(1, worksheetObjects[sheetName].Columns.Count).End(xlToLeft).Column;
        var lastRow = worksheetObjects[sheetName].Cells(worksheetObjects[sheetName].Rows.Count,1).End(xlUp).Row;
        
        //获取合并页的有多少行
        var startRow = ws1.Cells(ws1.Rows.Count,1).End(xlUp).Row;
        
        //开始复制
        worksheetObjects[sheetName].Range(Cells(2,1),Cells(lastRow,lastCol)).Copy(ws1.Cells(startRow+1, 1));
    }
}

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值