首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

VBA方法_-_将多个excel文件合并到一个excel的多个sheet中

2022-11-21 来源:华拓网


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(tempwb.Name, \".xls\\"\")

'关闭被合并工作簿

tempwb.Close SaveChanges:=False

i = i + 1

Next vrtSelectedItem

End If

End With

Set fd = Nothing

End Sub

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

因篇幅问题不能全部显示,请点此查看更多更全内容