多个工作簿里面的多个工作表有合并单元格无法通过VBA合并到1张表上
时间: 2023-07-28 15:10:47 浏览: 30
要合并多个工作簿里面的多个工作表的合并单元格,可以使用VBA编写一个宏,具体步骤如下:
1. 打开一个新的工作簿,命名为“合并表格”。
2. 在“合并表格”工作簿中选中第一个工作表,复制并粘贴到“合并表格”工作簿中。
3. 使用VBA编写一个宏,将第一个工作表中的所有合并单元格取消合并,代码如下:
```
Sub UnMerge()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange
If rng.MergeCells Then
rng.UnMerge
End If
Next
End Sub
```
4. 重复步骤2和步骤3,将所有工作表的合并单元格都取消合并。
5. 使用VBA编写一个宏,将所有工作表中的数据复制到“合并表格”工作表中,代码如下:
```
Sub CopyData()
Dim wbk As Workbook
Dim wsh As Worksheet
Dim rng As Range
Set wbk = ThisWorkbook
For Each wsh In wbk.Worksheets
If wsh.Name <> "合并表格" Then
wsh.Copy After:=wbk.Sheets(wbk.Sheets.Count)
Set wsh = ActiveSheet
wsh.Name = wsh.Name & " " & wsh.Index
wsh.Activate
Set rng = wsh.UsedRange
rng.Select
Selection.Copy Destination:=wbk.Sheets("合并表格").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
Application.DisplayAlerts = False
wsh.Delete
Application.DisplayAlerts = True
End If
Next
End Sub
```
6. 运行“CopyData”宏,将所有工作表中的数据复制到“合并表格”工作表中。
7. 在“合并表格”工作表中选中所有数据,使用VBA编写一个宏,将所有单元格合并,代码如下:
```
Sub MergeCells()
Selection.Merge
End Sub
```
8. 运行“MergeCells”宏,将所有单元格合并。
9. 最后,将“合并表格”工作簿保存为一个新的工作簿,即可完成所有工作表的合并。
相关推荐















