用vba实现同一个文件夹内的多个excel文件,对同sheet名的工作簿合并成一个工作表?

用vba实现同一个文件夹内的多个excel文件,对同sheet名的工作簿合并成一个工作表

Sub 合并工作表()
Dim 文件夹路径 As String
Dim 文件名 As String
Dim 主工作簿 As Workbook
Dim 目标工作表 As Worksheet
Dim 源工作簿 As Workbook
Dim 源工作表 As Worksheet
Dim 最后一行 As Long

' 设置文件夹路径
文件夹路径 = "C:\你的文件夹路径\" ' 请替换为实际的文件夹路径

' 打开主工作簿
Set 主工作簿 = ThisWorkbook

' 设置目标工作表,这里假设要合并到主工作簿的Sheet1工作表中
Set 目标工作表 = 主工作簿.Sheets("Sheet1")

' 获取文件夹中的文件名
文件名 = Dir(文件夹路径 & "*.xlsx")

' 循环处理每个文件
Do While 文件名 <> ""
' 打开源工作簿
Set 源工作簿 = Workbooks.Open(文件夹路径 & 文件名)

' 设置源工作表,这里假设要合并的工作表名为"Data",可以根据实际情况修改
Set 源工作表 = 源工作簿.Sheets("Data")

' 找到目标工作表中的最后一行
最后一行 = 目标工作表.Cells(目标工作表.Rows.Count, "A").End(xlUp).Row + 1

' 将源工作表的数据复制到目标工作表中
源工作表.UsedRange.Copy 目标工作表.Cells(最后一行, 1)

' 关闭源工作簿,不保存更改
源工作簿.Close SaveChanges:=False

' 继续处理下一个文件
文件名 = Dir
Loop

' 清理对象
Set 目标工作表 = Nothing
Set 主工作簿 = Nothing
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-02-19
这个需要的知识点大致有以下几点:
1、会用VBA打开文件夹,遍历文件夹内的文件目录,
2、逐个找出文件夹内的EXCEL文件-用EXCEL打开它,并读出其每个SHEET的名称
3、根据得到的名称结果,将同名的合并到一起
-------------以上,你是卡在哪一步了呢,说具体点,或者你也可以将你的源程序发上来,让大家帮你分析一下呗
大家正在搜