第1个回答 推荐于2019-08-08
用宏可以很方便的实现如下:
Sub UnionWorksheets()
Application.ScreenUpdating = False
Dim dirname As String
Dim nm As String
nm = ActiveWorkbook.Name
dirname = Dir("E:\123\*.xls")
Cells.Clear
Do While dirname <> ""
If dirname <> nm Then
Workbooks.Open Filename:="E:\123\" & dirname
Workbooks(nm).Activate '复制新打开工作簿的第一个工作表的已用区域到当前工作表
Workbooks(dirname).Sheets(1).UsedRange.Copy _
Range("A65536").End(xlUp).Offset(1, 0)
Workbooks(dirname).Close False
End If
dirname = Dir
Loop
End Sub
新建一个EXCEL工作簿,打开开发工具里面的 Visual Basic 把上面的代码复制进去,然后根据下面的提示适当修改即可。
其中的 dirname = Dir("E:\123\*.xls")
Workbooks.Open Filename:="E:\123\" & dirname
是文件夹的路径,根据自己电脑的文件夹路径修改就可以。
Range("A65536").End(xlUp).Offset(1, 0)
这个A65536是行数,因为考虑是03版的所以用了这个,行数也是可以自己调大的。
这个宏可以实现 汇总同一个文件夹下的所有工作薄的功能。本回答被网友采纳