excel多个文件表合并(2种方法)

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

新建一个工作表,命名后保存到和与合并的N个文件同一个文件文件夹,按 alt + f11,双击工程资源管理器里面的sheet1(sheet1),在右侧的代码区粘贴如下代码。运行。等候一会就OK了。

宏:多个文件表合到一个文件表的多个SHEET中(sheet的名字按原文件表中sheet的名字)

Sub CombineWorkbooks()

Dim FilesToOpen, ft

Dim x As Integer

Application.ScreenUpdating = False

On Error GoTo errhandler

FilesToOpen = Application.GetOpenFilename _

(FileFilter:="Micrsofe Excel文件(*.xls), *.xls", _

MultiSelect:=True, Title:="要合并的文件")

If TypeName(FilesToOpen) = "boolean" Then

MsgBox "没有选定文件"

'GoTo errhandler

End If

x = 1

While x <= UBound(FilesToOpen)

Set wk = Workbooks.Open(Filename:=FilesToOpen(x))

wk.Sheets().Move after:=ThisWorkbook.Sheets _

(ThisWorkbook.Sheets.Count)

x = x + 1

Wend

MsgBox "合并成功完成!"

errhandler:

'MsgBox Err.Description

'Resume errhandler

End Sub

宏:多个文件表合到一个文件表的多个SHEET中(只取第一个sheet,sheet的名字按原文件的名字)

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

相关文档
最新文档