新建一个文件夹
把要合并的.xls文件全丢进去
新建一个“合并.xls”,用Excel打开它
在窗口下方的“Sheet1”工作表标签上右键,选“选择查看代码”
在打开的窗口中,把下面的代码粘贴进去
还是在代码窗口,点击工具栏上的“运行”
Sub 合并文件夹内的所有xls()
Dim MyPath$, MyName$, sh As Worksheet, sht As Worksheet, m&
Set sh = ActiveSheet
MyPath = ThisWorkbook.Path & "\"
MyName = Dir(MyPath & "*.xls")
Application.ScreenUpdating = False
Cells.ClearContents
Do While MyName <> ""
If MyName <> ThisWorkbook.Name Then
With GetObject(MyPath & MyName)
For Each sht In .Sheets
If IsSheetEmpty = IsEmpty(sht.UsedRange) Then
m = m + 1
If m = 1 Then
sht.[a1].CurrentRegion.Copy sh.[a1]
Else
sht.[a1].CurrentRegion.Copy sh.[a65536].End(xlUp).Offset(1)
End If
End If
Next
.Close False
End With
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
End Sub
另外:
MyName = Dir(MyPath & "*.xls")
中的*.xls修改为*.xlsx和*.csv可分别合并07版本以后的Excel文件和csv文件
以上代码来自知乎:如何快速的合并多个 Excel 工作簿成为一个工作簿?
源代码:叶玄枫 修改:没有我
补充一个,在excel中删除所有空白行的宏:
Sub 删除所有空白行()
Dim i
Application.ScreenUpdating = False
For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
Rows(i).Select
If WorksheetFunction.CountA(Selection) = 0 Then Rows(i).Delete
Next
End Sub