WPS 合并一个工作簿中多个工作表

1.目的:

     一个工作簿中有多个工作表,每个工作表的字段名称和字段数量以及字段排列顺序一致,需求是把这些工作表合并成一个工作表。

2.处理方法:通过 wps 的 vba 代码实现。

3.操作步骤:

   1.在需要合并的工作表前新建一个工作表用来存储合并后的数据。

WPS 合并一个工作簿中多个工作表

2.点击  开发工具 ===> 查看代码,在合并工作表这个 sheet 页中编写以下代码

Private Sub sheets()
Application.ScreenUpdating = False
'合并工作表

'循环遍历每个工作表
For j = 1 To Workbooks(1).sheets.Count
    '判断遍历的工作表是否是合并后的那张工作表
   If Workbooks(1).sheets(j).Name <> ActiveSheet.Name Then
        '如果不是,定义所遍历的工作表数据行数
       X = Range("A65536").End(xlUp).Row + 1
        '把所遍历的工作表中的数据复制到合并的那张工作表中
       Workbooks(1).sheets(j).UsedRange.Copy Cells(X, 1)

   End If

Next j


'删除多余的表头
Dim i As Integer, Cons As Integer
    '定义合并后工作表的数据行数
   Cons = Range("A65536").End(xlUp).Row
   '通过上面方法合并工作表后会存在第一行没有数据,所以删除第一行
   Range("A1").EntireRow.Delete
   '从后往前遍历合并后的工作表第一列数据
    For i = Cons To 3 Step -1
        '判断是否是需要删除的字段名
        If Range("A" & i) = "序号" Then
            '如果是,执行删除
            Range("A" & i).EntireRow.Delete
        End If
    Next i


Range("B1").Select

Application.ScreenUpdating = True

MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"

End Sub
 

3.编写完成后,选中 运行,直接执行就行了。

4.问题

      1.编写的 vba 代码会把每个工作表中的第一行表头都复制过来,所以需要有删除多于表头这一步。

      2.合并后的工作表中第一行没有数据,所以需要在删除多于表头这一步中多写一步删除第一行

     3.此代码需要在 "WPS 表格对象"新建的工作表中编写

5.参考文档:

       https://blog.csdn.net/eastmount/article/details/79456784