vba 合并当前文件夹内多个excel的指定工作表到同一个excel的同名工作表
时间: 2023-07-26 11:04:48 浏览: 352
感谢您的问题。以下是 VBA 代码实现合并当前文件夹内多个 Excel 的指定工作表到同一个 Excel 的同名工作表的步骤:
1. 打开一个新的 Excel 文件,用于存储合并后的工作表。
2. 使用 FileSystemObject 对象获取当前文件夹内所有的 Excel 文件。
3. 循环遍历每个 Excel 文件,并打开指定的工作表。
4. 将打开的工作表复制到新的 Excel 文件中对应的同名工作表中。
5. 关闭所有已打开的 Excel 文件,保存新的 Excel 文件。
以下是示例代码:
```vb
Sub MergeWorkbooks()
Dim fso As Object
Dim folder As Object
Dim file As Object
Dim wb As Workbook
Dim ws As Worksheet
' 打开新的 Excel 文件
Set wb = Workbooks.Add
' 获取当前文件夹
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(ThisWorkbook.Path)
' 循环遍历所有 Excel 文件
For Each file In folder.Files
If Right(file.Name, 4) = ".xls" Or Right(file.Name, 5) = ".xlsx" Then
Set wbSource = Workbooks.Open(file.Path)
' 循环遍历指定的工作表
For Each ws In wbSource.Sheets(Array("Sheet1", "Sheet2", "Sheet3"))
' 复制工作表到新的 Excel 文件中对应的同名工作表中
ws.Copy after:=wb.Sheets(wb.Sheets.Count)
Set wsDest = wb.Sheets(ws.Name)
wsDest.Cells.Copy
wsDest.Cells.PasteSpecial xlPasteValues
Next ws
wbSource.Close False
End If
Next file
' 关闭所有已打开的 Excel 文件
Set wbSource = Nothing
Set wbDest = Nothing
Set fso = Nothing
End Sub
```
请注意,此代码仅演示了如何将指定的工作表复制到新的 Excel 文件中对应的同名工作表中,并没有进行任何错误处理或异常情况的处理。如果需要在实际项目中使用,请根据实际情况进行相应的修改。
阅读全文