如何用ExcelVBA批量处理文件

如题所述

方法有很多,一下是一个例子:

作者:层序缘
链接: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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-04
问题不详细。具体要怎么处理