方法有很多,一下是一个例子:
作者:层序缘
链接:https://www.zhihu.com/question/59403671/answer/221091633
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
sub BatchFiles
Dim Filename as String,fn as string,wb as workbook,sht as worksheet,arr as variant
Application.ScreenUpdating=false '屏幕更新关闭
Filename=dir(thisworkbook.path & "\*.xls") 'dir里面是路径和名称,返回的是文件名.xlsx,
do while Filename<>"" '取完所有文件
if Filename<>ThisWorkbook.Name then '判断取得的工作簿不是汇总工作簿,然后
fn=thisworkbook.path & "\" Filename
set wb=getobject(fn) '将fn代表的工作簿赋值给wb
set sht =wb.worksheets(1) '这里的1是指汇总的是工作簿中的第几张表
arr=sht.range(sht.cells("2,"a"),sht.cells(65536,"a").end(xlup).offset(0,"有几列”) '将取出的数据放入arr数组中保存。end和offset百度
cells(2,"a").resize(ubound(arr,1),ubound(arr,2))=arr '以2a单元格为左上角的基点,扩大ubound(arr,1),ubound(arr,2)
wb.close false
end if
Filename=dir '下一个文件名
loop
Application.ScreenUpdating=True
end sub