合并多个EXCEL表代码
今天工作时,写一个文档,突然需要将多个excel工作簿合并成一个,于是总结一下,希望有用。
1、合并多个EXCEL表为同一个EXCEL表
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="MicroSoft Excel文件(*.xls),*.xls", _
MultiSelect:=True, Title:="要合并的文件")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "没有选中文件"
GoTo ExitHandler
End If
x = 1
While x <= UBound(FilesToOpen)
Workbooks.Open Filename:=FilesToOpen(x)
Sheets().Move after:=ThisWorkbook.Sheets _
(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
用法:新建一个文件夹,将你要合并的excel都拷贝到里面,新建一个excel文件,作为合并的输出。打开刚刚创建的excel,按ALT+F11,代开代码编辑页面,双击sheet1,打开sheet的编辑器,将以上代码拷贝到编辑器,点击工具栏上的运行按钮。所有在文件夹下的excel都被加入到当前的excel文档了,分布在不同的sheet页中。
这个用的比较多
2、合并多个EXCEL表单为同一个表单
Sub test()
ActiveSheet.UsedRange.ClearContents
Dim countalla, countthis As Integer
countallb = 0
countthis = 0
For i = 1 To Sheets.Count
If Sheets(i).Name <> ActiveSheet.Name Then
countthis = Sheets(i).UsedRange.Rows.Count
Sheets(i).UsedRange.Copy [a65536].End(xlUp).Offset(1, 1)
countallb = countallb + countthis
ActiveSheet.Range("a" & countallb, Range("a" & countallb).End(xlUp).Offset(1, 0)).Value = Sheets(i).Name
End If
Next i
End Sub
用法:在当前excel中按ALT+F11,双击sheet1,打开sheet的编辑器,将以上代码拷贝到编辑器,点击工具栏上的运行按钮。
3、多个EXCEL表合并成一个表单
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer
Dim countalla, countthis As Integer
countallb = 0
countthis = 0
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="MicroSoft Excel文件(*.xls),*.xls", _
MultiSelect:=True, Title:="要合并的文件")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "没有选中文件"
GoTo ExitHandler
End If
x = 1
ThisWorkbook.Sheets("合并").UsedRange.ClearContents
While x <= UBound(FilesToOpen)
Workbooks.Open Filename:=FilesToOpen(x)
Sheets().Move after:=ThisWorkbook.Sheets("合并")
If ThisWorkbook.Sheets(2).Name <> "合并" Then
countthis = ThisWorkbook.Sheets(2).UsedRange.Rows.Count
ThisWorkbook.Sheets(2).UsedRange.Copy ThisWorkbook.Sheets("合并").[a65536].End(xlUp).Offset(1, 0)
countallb = countallb + countthis
'ThisWorkbook.Sheets("合并").Range("a" & countallb, Range("a" & countallb).End(xlUp).Offset(1, 0)).Value = ThisWorkbook.Sheets(2).Name
Application.DisplayAlerts = False
ThisWorkbook.Sheets(2).Delete
Application.DisplayAlerts = True
End If
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
用法同1.
分享到:
相关推荐
excel宏工具VBA工具,合并多个excel文件 合并多个excel工作表excel宏工具VBA工具合并excel合并多个工作簿工作表
使用VBA合并多个Excel工作簿 例如,需要将多个Excel工作簿中的工作表合并到一个工作簿。这
EXCEL VBA合并sheet文件代码
自己学习VBA编程时,利用excel内VBA宏编写的简单命令,涉及一些基础的操作,亲测可用,初学者可以借鉴,也能利用其解决一些简单的办公问题。
压缩文件中包括一个包含宏代码的Excel文件Sheet Macros.xls以及其他四个测试文件工作表 1~4。 宏的功能为(1)选中Excel表格中的某些行或列,运行某个Macro,自动根据选中的cells创建新的worksheets,worksheets的...
Excel中多个工作簿快速合并,系统导出的多个工作簿,快速合并,方便统计、打印、查找……等等
Excel VBA 操作 拆分当前Excel表中 / 所选取文件夹所有子文件中 所有sheet保存到对应文件夹路径中拆分表内 操作快捷,简单, 无需修改就可以使用
通过excel VBA代码中的application.getopenfilename打开选择文件窗口,通过MultiSelect:=True参数允许同时选择多个文件,通过定义变量X,将选择的文件名(含路径赋值给X,后指定每个X1在变更集X中,)如何实现通过VBA...
本代码集包含常用excel vba代码 多表合并、批量导入图片、多工作簿合并、批量删除表内图片
1、将需要拆分的EXCEL文件放在一个单独的文件夹,打开这个EXCEL文件,并关闭其他打开的EXCEL文件; 2、excel表格保留一行标题行,并把第一列数据填写为拆分项(文件拆分时将按第一列的内容进行归类合并为一个文件)...
1、新建一个工作薄,将其命名为你合并后的名字。 2、打开此工作薄。 3、在其下任一个工作表标签上点击右键,选择“查看代码”。 4、在打开的VBA编辑窗口中粘贴以下代码: Sub 工作薄间工作表合并()
合并Excel文件 宏代码 合并工作表 宏代码
解决多个excel文件合并的问题,实现快捷化方化。
通过VBA将多个格式相同的Excel文件合并成一个文件,带文件处理
<br>作者在编制软件《具才教务与成绩管理系统》的过程中,积累了大量的VBA实例代码,同时也在网上搜集了很多代码,现将其分类汇集起来和大家分享,相信会给您带来有益的帮助! <br>VBA(Visual Basic for ...
利用VBA合并多个word文档到一个文档中,操作说明在文档中
二是包含自动将数据结果到处为多个Excel文件的代码,文件名格式为:机构编码+文件主名称+日期,日期是自动取的当前日期,机构编码单独存放在名为shopid的sheet页里,位置可以自由修改,当然对应的代码中也要修改,...
一键选择多个excel工作簿,可以自定义多个工作簿中相同的部分区域内容提取合并,也可以直接将全部内容提取合并,打开就可以直接用,不需要其他步骤。 能够有效帮助相同表格模板不同收据来源的整合,如财务、出入库、...
改程序采用VBA编写,主要用于合并EXCEl的多个sheet表格。使用比较方便
Excel-VBA宏编程实例源代码-将窗体表制作为多个表.zip