vba汇总同一文件夹的多个工作簿中同名工作表
时间: 2023-08-01 22:03:43 浏览: 298
在VBA中,要汇总同一文件夹中多个工作簿中的同名工作表,可以按照以下步骤进行:
首先,创建一个新的工作簿作为汇总结果。可以使用以下代码创建新的工作簿:
```vba
Dim summaryWorkbook As Workbook
Set summaryWorkbook = Workbooks.Add
```
接下来,获取指定文件夹中的所有文件名。可以使用以下代码获取文件夹路径以及文件夹中的所有文件名:
```vba
Dim folderPath As String
Dim fileName As String
Dim folder As Object
Dim file As Object
folderPath = "指定的文件夹路径"
Set folder = CreateObject("Scripting.FileSystemObject").GetFolder(folderPath)
For Each file In folder.Files
fileName = file.Name
'在此处继续编写代码
Next file
```
然后,打开每个工作簿,并将相应的同名工作表复制到汇总结果工作簿中。可以使用以下代码实现:
```vba
Dim sourceWorkbook As Workbook
Dim sourceWorksheet As Worksheet
Dim destWorksheet As Worksheet
For Each file In folder.Files
fileName = file.Name
Set sourceWorkbook = Workbooks.Open(folderPath & "\" & fileName)
For Each sourceWorksheet In sourceWorkbook.Worksheets
'检查是否有同名工作表
If WorksheetExists(sourceWorksheet.Name, summaryWorkbook) Then
Set destWorksheet = summaryWorkbook.Worksheets(sourceWorksheet.Name)
sourceWorksheet.Copy After:=destWorksheet
End If
Next sourceWorksheet
sourceWorkbook.Close SaveChanges:=False
Next file
```
最后,在完成复制后,保存并关闭汇总结果工作簿:
```vba
summaryWorkbook.SaveAs folderPath & "\汇总结果.xlsx"
summaryWorkbook.Close SaveChanges:=False
```
以上是利用VBA汇总同一文件夹中多个工作簿中同名工作表的方法。通过遍历文件夹中的工作簿,打开每个工作簿并复制同名工作表到汇总结果工作簿中,最后保存并关闭汇总结果工作簿。
阅读全文