>百科大全> 列表
vba怎么把一个文件夹里的excel汇总
时间:2025-04-11 05:54:36
答案

在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文件,将它们的数据汇总到一个新的工作簿中。

推荐
Copyright © 2025 持续知识网 |  琼ICP备2022020623号 |  网站地图