在VBA中,你可以使用`FileSystemObject`对象来获取文件夹中的所有Excel文件,然后使用`Workbooks.Open`方法打开这些文件并将它们的数据汇总到一个新的工作簿中。以下是一个简单的示例:
1. 首先,在VBA编辑器中,点击“工具”>“引用”,然后勾选“Microsoft Scripting Runtime”。
2. 然后,创建一个新的过程,如下所示:
```vba
Sub 合并Excel文件()
Dim fso As Scripting.FileSystemObject
Dim folder As Scripting.Folder
Dim file As Scripting.File
Dim wb As Workbook
Dim ws As Worksheet
Dim summaryWb As Workbook
Dim summaryWs As Worksheet
Dim lastRow As Long
' 创建一个新的工作簿用于存放汇总数据
Set summaryWb = Workbooks.Add
Set summaryWs = summaryWb.Worksheets(1)
' 设置要搜索的文件夹路径
folderPath = "C:\\your_folder_path_here"
' 创建FileSystemObject对象
Set fso = New Scripting.FileSystemObject
Set folder = fso.GetFolder(folderPath)
' 遍历文件夹中的所有文件
For Each file In folder.Files
' 检查文件是否为Excel文件
If Right(file.Name, 4) = "xlsx" Or Right(file.Name, 3) = "xls" Then
' 打开Excel文件
Set wb = Workbooks.Open(file.Path)
Set ws = wb.Worksheets(1)
' 找到汇总工作表的最后一行
lastRow = summaryWs.Cells(summaryWs.Rows.Count, "A").End(xlUp).Row + 1
' 复制数据到汇总工作表
ws.UsedRange.Copy summaryWs.Cells(lastRow, 1)
' 关闭当前Excel文件
wb.Close SaveChanges:=False
End If
Next file
' 保存汇总工作簿
summaryWb.SaveAs "C:\\your_summary_workbook_path_here"
summaryWb.Close SaveChanges:=False
End Sub
```
3. 修改`folderPath`和`summaryWb.SaveAs`中的路径,以匹配你的实际文件夹路径和汇总工作簿的保存位置。
4. 运行这个子程序,它将遍历指定文件夹中的所有Excel文件,将它们的数据汇总到一个新的工作簿中。