多个excel工作簿合并_Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!...
时间: 2023-07-26 11:03:49 浏览: 277
多个EXCEL工作簿(Sheet)合成一个工作簿
5星 · 资源好评率100%
好的,你想了解如何用VBA代码一键合并汇总多个Excel工作簿,省时省力。以下是具体步骤:
1. 打开一个新的Excel工作簿,按下“Alt+F11”打开VBA编辑器。
2. 在VBA编辑器中,单击菜单栏上的“插入”->“模块”,打开一个新的VBA模块。
3. 在新的VBA模块中,复制以下代码:
```
Sub 合并多个工作簿()
Dim MyPath As String, FilesInPath As String
Dim MyFiles() As String
Dim SourceRcount As Long, FNum As Long
Dim mybook As Workbook, BaseWks As Worksheet
Dim sourceRange As Range, destrange As Range
Dim rnum As Long, CalcMode As Long
'关闭屏幕刷新,提高运行速度
With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
.EnableEvents = False
End With
'获取要合并的工作簿所在的文件夹
MyPath = InputBox("请输入要合并的工作簿所在的文件夹路径")
If MyPath = "" Then Exit Sub
If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\"
'获取要合并的工作簿文件名
FilesInPath = Dir(MyPath & "*.xlsx")
If FilesInPath = "" Then
MsgBox "找不到任何Excel文件", vbInformation, "没有文件"
Exit Sub
End If
'将要合并的工作簿文件名放入一个数组中
FNum = 0
Do While FilesInPath <> ""
FNum = FNum + 1
ReDim Preserve MyFiles(1 To FNum)
MyFiles(FNum) = FilesInPath
FilesInPath = Dir()
Loop
'打开第一个工作簿并将其内容复制到新的工作簿中
Set BaseWks = Workbooks.Open(MyPath & MyFiles(1)).Sheets(1)
rnum = BaseWks.Cells.Find(What:="*", _
After:=BaseWks.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
For FNum = 2 To UBound(MyFiles)
Set mybook = Nothing
On Error Resume Next
Set mybook = Workbooks.Open(MyPath & MyFiles(FNum))
On Error GoTo 0
If Not mybook Is Nothing Then
sourceRange = mybook.Sheets(1).Range("A1").CurrentRegion
SourceRcount = sourceRange.Rows.Count
If SourceRcount >= 2 Then
Set destrange = BaseWks.Range("A" & rnum + 1)
sourceRange.Copy destrange
rnum = rnum + SourceRcount
End If
mybook.Close SaveChanges:=False
End If
Next FNum
BaseWks.Columns.AutoFit
'恢复屏幕刷新和事件处理,并计算一次
With Application
.Calculation = CalcMode
.ScreenUpdating = True
.EnableEvents = True
End With
MsgBox "合并完成"
End Sub
```
4. 将代码中的“输入要合并的工作簿所在的文件夹路径”改为实际的文件夹路径。
5. 按下“F5”或点击“运行”->“运行子过程”,运行代码。
6. 程序会自动合并指定文件夹中的所有Excel工作簿并将它们汇总到新的工作簿中的第一个工作表中。
注意:在运行过程中,程序会关闭屏幕刷新和事件处理功能,以提高运行速度。运行完成后,程序会自动恢复这些功能。
阅读全文