1. WPS 在开发工具栏目找到VC编辑器,
windows 新建一个sheet 然后在sheet上右键选择查看代码
2.进入代码编辑器新建模块将以下代码复制粘贴,然后运行,最后完成合并
Sub MergeSheets() '工作簿内合并所有工作表
Dim sheetsCount As Long '定义 工作簿内工作表数量 赋值为 sheetCount 数据类型为 Long(长整型)
Dim rowCount As Long '定义 汇总表行数 赋值为 rowCount 数据类型为 Long(长整型)
Dim i As Long '定义 循环标识 赋值为 i 数据类型为 Long(长整型)
With ThisWorkbook
sheetsCount = .Sheets.Count '获取工作表总数量
.Sheets.Add After:=.Sheets(.Sheets.Count) '新建一个工作簿
.Sheets(.Sheets.Count).Name = "汇总" '设置新建工作簿名为 汇总
For i = 1 To sheetsCount
.Sheets(i).UsedRange.Copy '逐个循环复制表内已使用单元格区域
With .Sheets("汇总")
rowCount = .Range("A" & 2 ^ 20).End(xlUp).Row + 1 '粘贴前获取 汇总 表中已使用单元格行数的下一行行数
.Range("A" & rowCount).Select '选中A列该行所在单元格
.Paste '执行粘贴
End With
Next
.Sheets("汇总").Move before:=.Sheets(1) '把汇总表移动到开头
End With
End Sub
上述代码如果有异常,请使用下面的
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(what:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
Sub MergeSheets()
Dim sh As Worksheet
Dim DestSh As Worksheet
Dim Last As Long
Dim shLast As Long
Dim CopyRng As Range
Dim StartRow As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
'新建一个“汇总”工作表
Application.DisplayAlerts = False
On Error Resume Next
ActiveWorkbook.Worksheets("汇总").Delete
On Error GoTo 0
Application.DisplayAlerts = True
Set DestSh = ActiveWorkbook.Worksheets.Add
DestSh.Name = "汇总"
'开始复制的行号,忽略表头,无表头请设置成1
StartRow = 2
For Each sh In ActiveWorkbook.Worksheets
If sh.Name <> DestSh.Name Then
Last = LastRow(DestSh)
shLast = LastRow(sh)
If shLast > 0 And shLast >= StartRow Then
Set CopyRng = sh.Range(sh.Rows(StartRow), sh.Rows(shLast))
If Last + CopyRng.Rows.Count > DestSh.Rows.Count Then
MsgBox "内容太多放不下啦!"
GoTo ExitSub
End If
CopyRng.Copy
With DestSh.Cells(Last + 1, "A")
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End With
End If
End If
Next
ExitSub:
Application.GoTo DestSh.Cells(1)
DestSh.Columns.AutoFit
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub