一个文件夹中的所有excel文件都汇总到一个新excel中的宏代码
时间: 2024-09-25 20:13:30 浏览: 51
excel合并文件夹下所有excel文件到一个工作表中
在Excel中编写一个宏来将一个文件夹内的所有Excel文件内容汇总到一个新的工作簿中,可以按照以下步骤来编写。假设你熟悉VBA(Visual Basic for Applications),这是Excel中用于创建宏的语言:
```vba
Sub MergeFilesIntoSingleSheet()
Dim ws As Worksheet ' 工作表对象
Dim wbInput As Workbook ' 输入的工作簿
Dim wbOutput As Workbook ' 输出的工作簿
Dim dirPath As String ' 文件夹路径
Dim inputFile As String ' 当前正在处理的文件名
' 设置文件夹路径
dirPath = "C:\YourFolder\" ' 更改为实际文件夹路径
' 打开新的工作簿作为输出
Set wbOutput = Workbooks.Add
ws = wbOutput.Worksheets(1) ' 获取第一张工作表
' 循环遍历文件夹中的每个Excel文件
For Each inputFile In Dir(dirPath & "*.xls*") ' "*.xls*" 匹配xls或xlsx文件
If inputFile <> ThisWorkbook.Name Then ' 避免读取当前打开的文件
Set wbInput = Workbooks.Open(dirPath & inputFile)
' 将输入工作簿的所有数据复制到输出工作表
For Each wsInInput In wbInput.Sheets
ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(1, 0).CopyFromRecordset wsInInput.UsedRange
Next wsInInput
' 关闭不再需要的输入工作簿
wbInput.Close SaveChanges:=False
End If
Next inputFile
' 提示用户保存输出文件
MsgBox "所有文件已汇总到当前工作簿,是否保存?", vbYesNo + vbQuestion, "汇总结果"
End Sub
```
运行这个宏后,它会查找指定文件夹中的所有Excel文件,并将它们的内容逐个添加到输出工作簿的第一个工作表上。完成后,程序会询问用户是否保存汇总后的文件。
阅读全文