① 求助EXCEL使用VBA批量打开一系列表格文件并复制里面的数据到另一个表格文件中
SubCopy_Data()
DimwbAsWorkbook,rngAsRange,shtAsWorksheet
Dimsht_Name,theDate
sht_Name="Sheet1"'假设所有报表文件中的数据都在Sheet1
Setsht=ActiveSheet'保存当前工作表对象
fn=Dir(ThisWorkbook.Path&"报表-*.xls",vbReadOnly)'打开第一个报表文件
DoWhilefn<>""'开始循环
Setwb=Workbooks.Open(fn)'以只读模式打开报表文件
'取得报表文件中的日期字符串
theDate=Mid(fn,InStr(fn,"报表-")+4,Len(fn)-InStr(fn,"报表-")-7)
'将报表文件中的数据复制到当前工作表
Withwb.Worksheets(sht_Name)
.Range(.Range("A2"),.Range("A1").End(xlToRight).End(xlDown)).Copy_
Destination:=sht.Range("A65536").End(xlUp).Offset(1,1)
EndWith
wb.Close(False)'关闭报表文件,不保存
sht.Activate'激活当前工作表
Range(Range("A65536").End(xlUp).Offset(1,0),Range("B65536").End(xlUp).Offset(0,-1))=DateValue(Format(theDate,"0000-00-00"))'在A列填充报表文件的日期信息
fn=Dir
Loop'循环下一个报表文件
EndSub