microsoft excel
假设在D盘的time目录(文件夹)中有多个工作簿,并且各工作簿的名字没有统一规律,每个工作簿里面只有一个工作表。
新建一个空白工作簿,按ALT+F11调出它的VBA窗口,插入一个用户模块,将下面代码粘贴进去。Sub合并工作簿() Application.DisplayAlerts=False'关闭提示窗口 shes=Application.SheetsInNewWorkbook'工作簿中包含工作表数 Application.SheetsInNewWorkbook=1'生成的新工作簿中只有一个工作表 Setnewbok=Workbooks.Add'生成新工作簿 Setnewshe=newbok.Worksheets(1)'新工作表 s=1'从新工作表的第一行写入数据 na=Dir('d:\time\*.xls')'需要合并的所有工作表都要事先保存在D盘time文件夹下 DoWhilena<>'' Setwb=Application.Workbooks.Open('d:\time\'&na) wb.Worksheets(1).UsedRange.Copy'复制数据 newbok.Activate Cells(s,1).Select ActiveSheet.Paste'执行粘贴 s=newshe.UsedRange.Rows.Count+1 Cells(s,1)=wb.Name'写入数据所属的工作簿名字 s=s+1 wb.Close'关闭工作簿 na=Dir()'取下一个工作簿 Loop Application.SheetsInNewWorkbook=shes Application.DisplayAlerts=True Range('a1').Select EndSub执行这个代码就能快速完成合并工作。
EXCEL2003及以前版本的工作簿文件后缀是'.xls',如果你用的是EXCEL2007及以上版本,请将代码中的'*.xls'改成'*.xlsx'。