① 求助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