在Excel中合并文件夹内的所有.xls文件

  1. 新建一个文件夹

  2. 把要合并的.xls文件全丢进去

  3. 新建一个“合并.xls”,用Excel打开它

  4. 在窗口下方的“Sheet1”工作表标签上右键,选“选择查看代码”

  5. 在打开的窗口中,把下面的代码粘贴进去

  6. 还是在代码窗口,点击工具栏上的“运行”

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


评论
——“本喵的萝莉很少”