在office 2016中的visual basic中输入以下代码(并准确输入目表工作簿路径和保存文件路径):
Sub MergeWorkbooks()
Dim folderPath As String
Dim outputFilePath As String
Dim mergedWorkbook As Workbook
Dim wb As Workbook
Dim ws As Worksheet
' 设置目标文件夹路径和目标文件名
folderPath = "C:\Users\Administrator\Desktop\新建文件夹\物资汇总 - 副本\"
outputFilePath = folderPath & "merged.xlsx"
' 创建一个空的总工作簿
Set mergedWorkbook = Workbooks.Add
' 禁止屏幕刷新和事件处理
Application.ScreenUpdating = False
Application.EnableEvents = False
' 获取目标文件夹中的所有文件名)(需要将该文件夹下的所有工作簿改成xls格式的(可在命令窗口用 ren *.* *.xls命令))
fileName = Dir(folderPath & "*.xls")
' 遍历每个文件
Do While fileName <> ""
' 打开文件
Set wb = Workbooks.Open(folderPath & fileName)
' 遍历每个工作表
For Each ws In wb.Worksheets
' 将每个工作表复制到总工作簿
ws.Copy After:=mergedWorkbook.Sheets(mergedWorkbook.Sheets.Count)
Next ws
' 关闭文件
wb.Close SaveChanges:=False
' 获取下一个文件名
fileName = Dir
Loop
' 保存总工作簿
mergedWorkbook.SaveAs outputFilePath
' 关闭总工作簿
mergedWorkbook.Close
' 恢复屏幕刷新和事件处理
Application.ScreenUpdating = True
Application.EnableEvents = True
' 提示合并完成
MsgBox "合并完成。"
End Sub