当前工作簿的所有工作表里有合并单元格怎么合并到一张表上?
时间: 2024-04-14 14:26:28 浏览: 120
要将当前工作簿的所有工作表的合并单元格合并到一张表上,您可以使用以下VBA代码:
```vba
Sub 合并工作表合并单元格()
Dim DestWS As Worksheet
Dim WS As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim RangeToCopy As Range
Dim MergedArea As Range
'设置合并后的目标工作表
Set DestWS = ThisWorkbook.Sheets.Add(After:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
DestWS.Name = "合并结果"
'关闭屏幕更新,加快处理速度
Application.ScreenUpdating = False
'循环遍历所有工作表
For Each WS In ThisWorkbook.Sheets
'跳过目标工作表
If WS.Name <> DestWS.Name Then
With WS.UsedRange
'查找合并单元格并复制到目标工作表
For Each MergedArea In .MergeCells.Areas
Set RangeToCopy = MergedArea
LastRow = DestWS.Cells(DestWS.Rows.Count, 1).End(xlUp).Row + 1
LastColumn = DestWS.Cells(LastRow, DestWS.Columns.Count).End(xlToLeft).Column + 1
RangeToCopy.Copy Destination:=DestWS.Cells(LastRow, LastColumn)
'取消合并单元格,并清除格式
RangeToCopy.MergeCells = False
DestWS.Cells(LastRow, LastColumn).ClearFormats
Next MergedArea
End With
End If
Next WS
'恢复屏幕更新,并选中合并结果工作表
Application.ScreenUpdating = True
DestWS.Select
End Sub
```
请将此代码复制到VBA编辑器中的模块中,并运行它即可实现在当前工作簿的一张新工作表中合并所有工作表的合并单元格。在运行之前,请确保您保存了当前工作簿。
希望对您有所帮助!如果您有其他问题,请随时提问。
阅读全文