(完整版)VBA方法_-_将多个excel文件合并到一个excel的多个sheet中

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VBA方法 - 将多个excel文件合并到一个excel的多个sheet中由上级的要求,同事需要将以前做的所有excel文件(手机话费清单表),都合并到一个excel中,并且每个excel文件为一个sheet。她开始是用复制粘贴的方法,很麻烦。所有她就问我,有没有什么方法可以快点做完。

网上搜索,方法如下:

1. 将需合并的excel文件放在同一个文件中,并这个文件中新建一个excel 文件

2. 打开新建的excel文件,按alt + f11建,打开宏,新建一个模组,将下面的代码拷贝进去,并保存。

Sub Books2Sheets()

'定义对话框变量

Dim fd As FileDialog

Set fd = Application.FileDialog(msoFileDialogFilePicker)

'新建一个工作簿

Dim newwb As Workbook

Set newwb = Workbooks.Add

With fd

If .Show = -1 Then

'定义单个文件变量

Dim vrtSelectedItem As Variant

'定义循环变量

Dim i As Integer

i = 1

'开始文件检索

For Each vrtSelectedItem In .SelectedItems

'打开被合并工作簿

Dim tempwb As Workbook

Set tempwb = Workbooks.Open(vrtSelectedItem)

'复制工作表

tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i) '把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsx

newwb.Worksheets(i).Name = VBA.Replace(, ".xls", "")

'关闭被合并工作簿

tempwb.Close SaveChanges:=False

i = i + 1

Next vrtSelectedItem

End If

End With

Set fd = Nothing

End Sub

3. 运行程序,弹出对话框,批量选择要合并的excel名,确定即可。注意:完成后,所需表格为book1,而不是那个新建excel。

相关文档
最新文档