如何把多个EXCEL文件汇总到一个EXCEL中?
发布网友
发布时间:2022-04-20 11:04
我来回答
共1个回答
热心网友
时间:2023-07-08 18:44
有多种方法可以将多个Excel表格的内容合并到一个表格里面,以下是其中两种常见的方法:
方法一:使用Excel自带的合并工具
1. 打开一个新的Excel文档,点击“数据”选项卡,在“来自其他来源”一栏中选择“从文本/CSV”选项;
2. 选择要合并的第一个Excel表格,点击“打开”;
3. 在“文本导入向导”中,选择“分隔符”选项,并勾选“制表符”和“逗号”;
4. 点击“下一步”,在“列数据格式”中选择“文本”;
5. 点击“完成”,将数据导入到新的Excel文档中;
6. 重复以上步骤,将其他Excel表格的数据分别导入到新的Excel文档中;
7. 最后,将所有数据复制到同一个工作表中即可。
方法二:使用VBA宏
1. 打开一个新的Excel文档;
2. 点击“开发工具”选项卡,选择“Visual Basic”;
3. 在Visual Basic编辑器中,点击“插入”选项卡,选择“模块”;
4. 将以下代码复制到模块中:
Sub MergeAllWorkbooks()
Dim SummarySheet As Worksheet
Dim FolderPath As String
Dim NRow As Long
Dim FileName As String
Dim WorkBk As Workbook
Dim SourceRange As Range
Dim DestRange As Range
Application.ScreenUpdating = False
Set SummarySheet = ThisWorkbook.Worksheets.Add
FolderPath = InputBox("请输入要合并的文件夹路径:")
If Right(FolderPath, 1) <> "\" Then FolderPath = FolderPath + "\"
FileName = Dir(FolderPath & "*.xls*")
Do While FileName <> ""
Set WorkBk = Workbooks.Open(FolderPath & FileName)
Set SourceRange = WorkBk.Worksheets(1).UsedRange
If NRow = 0 Then
Set DestRange = SummarySheet.Range("A1")
SourceRange.Copy DestRange
Else
Set DestRange = SummarySheet.Range("A" & NRow + 1)
SourceRange.Copy DestRange
End If
NRow = SummarySheet.UsedRange.Rows.Count
WorkBk.Close False
FileName = Dir()
Loop
SummarySheet.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
5. 点击“运行”按钮,输入要合并的Excel表格所在的文件夹路径;
6. 程序将自动遍历该文件夹下的所有Excel表格,将它们的数据合并到新的Excel文档中;
7. 最后,保存新的Excel文档即可。
以上两种方法都能够将多个Excel表格的内容合并到一个表格里面,使用VBA宏的方法相对来说更加自动化和快捷,但需要一定的编程知识。