手机版

excel图表怎么合并多个工作簿中的数据

时间:2021-09-19 来源:互联网 编辑:宝哥软件园 浏览:

我有超过5个具有相同格式的超过文件,它们的列标题相同,并且都放置在同一文件夹,有什么快速的方法将它们合并到一个单独的超过文件的一个工作表中?

假设工作簿文件结构如下所示。

其中,在文件夹"要合并的工作簿文件"中,有3个示例工作簿文件"测试1.xls、测试2.xls、测试3.xls”,将它们合并到工作簿"合并xls "中。

在"合并xls "工作簿中,有三个工作表。其中,"设置"工作表中的单元格B2中的数据为每个工作簿中想要合并的工作表名,这里假设每个工作簿中的工作表名相同;单元格B3为要合并的数据开始的行号。

在"导入工作簿名"工作表中将放置合并的工作簿的名称。

"合并工作表"就是我们要放置合并的数据的工作表。

完整的VBA代码如下:

' 放置导入工作簿名称的工作表

private Const importedSheet为字符串="导入工作簿名"

'放置合并数据的工作表

private Const组合工作表为字符串="合并工作表"

' 放置导入工作簿名称的行号

私人进口尽可能长

副主()

作为变体的模糊响应

响应=MsgBox("想要运行合并程序吗?"vbCr _

"这将擦除"合并的工作表"工作表中已前合并的数据", _

vbYesNoCancel vbDefaultButton3 vbQuestion,"合并处理")

如果响应=vbYes,则

呼叫选择Xls

如果…就会结束

末端接头

专用子选择Xls()

' 合并数据的工作簿

将此工作簿调暗为工作簿

' 包含工作簿完整路径和文件名的数组

作为变体的暗淡的文件

' 当前的工作簿文件路径和文件名

作为变体的尺寸xls

' 工作簿文件中(通用的)工作表名

将xls蒙片设为字符串

' 复制数据开始的行号

模糊开始行复制为长

' 粘贴数据开始的行号

模糊的粘贴纸一样长

出错时转到通用处理器

' 帮助加快代码处理速度

申请EnableCancelKey=假

申请。计算=xlCalculationManual

xlsCommonSheet=范围(“工作表名称到组合”)

开始行复制=范围("开始行")

设置工作簿。名称)

xls文件=应用程序GetOpenFilename(_

"微机软件超过工作簿(*.xls*),* .xls* ",_

"选择要合并的文件",真的)

申请。屏幕更新=假

' 如果用户没有点击取消按钮

如果是数组(xlsFiles),那么

纸张(组合纸张)。挑选

pastePtr=startRowCopy

'重置清除数据

importPtr=

这个Wb .工作表(导入工作表)。单元格。清除

这个Wb .纸张(组合纸张)。行(粘贴纸":"应用程序。行数。清楚的

对于xls文件中的每个xls

如果这个Wb .全名xlsThen

调用进程Xls(粘贴、xls、thisWb、xls表单、开始行复制)

如果…就会结束

下一个xls

MsgBox "处理成功“,vbInformation vbOKOnly,”合并程序"

如果…就会结束

出口接头

genericHandler: '错误处理

这个Wb .使活动

调用resetDefault

MsgBox "错误号: " Err .数字vbCr _

"错误说明: " _

呃。描述,vbInformation vbOKOnly,_

"合并工作簿错误报告"

末端接头

专用子进程Xls(ByRefpastePtr As Long,ByVal xls As Variant,_

将此韦伯值作为工作簿,_

ByVal xlsCommonSheet AsString,ByVal startRowCopy As Long)

' 打开的工作簿对象

将openWb调暗为工作簿

' 工作表中最后一个数据单元格所在的行

暗淡最后一行尽可能长

' 打开工作簿

工作簿。打开(xls)

设置openWb=工作簿(活动工作簿。名称)

用openWb .表单(xls表单)。挑选

lastRowx=lastRow()

如果最后一行,那么。行(开始行复制":"最后一行)。复制_

这个Wb .纸张(组合纸张)。范围(“一”粘贴纸)

pastePtr=pastePtr(最后一行-开始行复制)1

' 导入数据的工作簿名

importPtr=importPtr 1

这个Wb .工作表(导入工作表)。范围(“A”importPtr)=OpenWB .名字

如果…就会结束

以…结尾

' 关闭工作簿

工作簿(openWb .名称)。关闭保存更改3360=假

末端接头

私有函数lastRow() AsLong

最后一行=

如果工作正常。计数(单元格)然后

逐行向后搜索。

最后一行=单元格。find(what :=*,After:=[a1],_

SearchOrder:=xlByRows,_

search direction :=XlPrevious)。排

如果…就会结束

结束功能

私有子重置默认()

重置应用程序屏幕刷新和计算模式。

申请。屏幕更新=真

申请。计算=xlCalculationAutomatic

末端接头

运行主进程,弹出如下所示的对话框。

选择“是”按钮,弹出如下所示的文件选择对话框。

导入到要合并的工作簿所在的文件夹中,选择要合并的工作簿文件,然后单击“打开”按钮。如果一切顺利,数据整合完成,弹出如下消息。

我们可以看到结果。在“导入工作簿名称”工作表中,包含合并数据的工作簿的名称如下所示。

在合并工作表中,它是合并数据,如下所示。

版权声明:excel图表怎么合并多个工作簿中的数据是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。