vba批量合并多sheet
时间: 2023-08-07 17:08:40 浏览: 111
你可以使用VBA编写一个宏来批量合并多个工作表。以下是一个示例代码,可以将所有工作表中的数据合并到一个新的工作表中:
```vba
Sub 合并工作表()
Dim ws As Worksheet
Dim wsMerge As Worksheet
Dim lastRow As Long
' 创建一个新的工作表用于合并数据
Set wsMerge = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))
wsMerge.Name = "合并数据"
' 循环遍历所有工作表
For Each ws In ThisWorkbook.Worksheets
' 跳过新创建的合并工作表
If ws.Name <> "合并数据" Then
' 获取当前工作表的最后一行
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' 将当前工作表的数据复制到合并工作表的下一行
ws.Range("A1").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
```
这段代码会在当前工作簿中创建一个名为"合并数据"的新工作表,并将其他所有工作表中的数据合并到该工作表中。请注意,代码会将所有工作表中的数据从第一行开始依次复制到合并工作表的下一行。在复制数据之前,代码会自动寻找每个工作表的最后一行。
你可以根据自己的需求修改代码。希望对你有帮助!如果有任何问题,请随时提问。
阅读全文