Excel VBA合并不同工作簿所有工作表到一张工作表
时间: 2024-10-12 22:07:22 浏览: 161
在Excel VBA中,如果你想把不同工作簿的所有工作表合并到一个工作簿中的指定工作表,可以使用`Worksheets.Add`和`Range.Copy`方法。下面是一个基本的示例,假设你想合并名为"Sheet1"的所有工作簿,并将它们添加到当前工作簿的最后一个工作表之后:
```vba
Sub MergeAllSheetsFromOtherWorkbooks()
Dim wbTarget As Workbook
Dim wbSource As Workbook
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Dim lastRow As Long
'设置目标工作簿和工作表
Set wbTarget = ThisWorkbook '当前工作簿
Set wsTarget = wbTarget.Worksheets.Add(After:=wbTarget.Worksheets(wbTarget.Worksheets.Count)) '新建一个工作表作为目标
'遍历所有打开的工作簿
For Each wbSource In Application.Workbooks
If wbSource.Name <> ThisWorkbook.Name Then '排除当前工作簿
For Each wsSource In wbSource.Worksheets '遍历每个工作簿的每个工作表
If wsSource.Name = "Sheet1" Then '只考虑名称为"Sheet1"的工作表
'获取源工作表的最后一行
lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
'复制数据到目标工作表
wsTarget.Range("A" & wsTarget.Cells.Count).End(xlUp).Offset(1).Resize(lastRow, wsSource.Columns.Count).Value = wsSource.Range("A1").CurrentRegion.Value
End If
Next wsSource
End If
Next wbSource
MsgBox "所有工作簿的Sheet1已合并至当前工作簿的最新工作表", vbInformation
End Sub
```
运行此宏后,所有符合条件的工作簿的Sheet1会被合并到新的工作表中。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)