以下是一个示例的Excel VBA代码,可以用于批量合并多个工作簿中的工作表到一个目标工作簿中。在这个示例中,我们将使用一个目标工作簿来合并所有工作表,但你可以根据需要进行调整。注意,这段代码假设源工作簿位于指定的文件夹路径下,并且源工作簿的扩展名为 .xlsx。你可以根据需要修改文件夹路径和文件扩展名。另外,代码还假设目标工作簿已经打开,你可以将 mainWorkbook 设置为你希望合并工作表的目标工作簿,或者在代码中打开目标工作簿。在运行代码之前,请确保备份了目标工作簿中的数据,以防意外情况发生。最好在测试环境中运行代码,确保它按预期工作。
Sub MergeSheetsFromWorkbooks()
Dim mainWorkbook As Workbook
Dim sourceWorkbook As Workbook
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Dim targetRow As Long
Dim fileName As String
Dim folderPath As String
' 设置目标工作簿
Set mainWorkbook = ThisWorkbook ' 或者根据需要指定其他目标工作簿
' 设置包含源工作簿的文件夹路径
folderPath = "C:\Users\Administrator\Desktop\Workbooks\"
' 循环遍历文件夹中的所有工作簿
fileName = Dir(folderPath & "*.xlsx")
Do While fileName <> ""
' 打开源工作簿
Set sourceWorkbook = Workbooks.Open(folderPath & fileName)
' 循环遍历源工作簿中的所有工作表
For Each sourceSheet In sourceWorkbook.Sheets
' 在目标工作簿中添加新工作表
Set targetSheet = mainWorkbook.Sheets.Add(After:=mainWorkbook.Sheets(mainWorkbook.Sheets.Count))
' 将源工作表的内容复制到目标工作表
sourceSheet.UsedRange.Copy targetSheet.Cells(1, 1)
Next sourceSheet
' 关闭源工作簿
sourceWorkbook.Close False
' 获取下一个文件名
fileName = Dir
Loop
End Sub