excel图表是怎么合并多个工作簿中的数据
发布时间:2022-12-28 18:06:19
我们使用代码快速合并超过5 个Excel工作簿文件,然而,如果要合并的工作簿中工作表的名称不相同,但位于每个工作簿的第1个工作表;并且,要在合并后的工作表的第1列中输入相对应的工作簿文件名,以便知道合并后的数据来自哪个工作簿文件。
同样,可以使用VBA代码快速解决。多的话不说,先上代码:
Sub Combine()
‘声明变量
Dim fn, e
Dim ws As Worksheet
Dim flg As Boolean
Dim LastR As Range
Dim wsName As String
‘打开选择文件对话框
fn = Application.GetOpenFilename _
(“Excel(*.xls*),*.xls*”,MultiSelect:=True)
‘如果没有选取文件,则退出
If Not IsArray(fn) Then Exit Sub
‘在当前工作簿中添加新工作表
Set ws = ActiveWorkbook.Sheets.Add
‘将新添加的工作表命名为Combined
ws.Name = “Combined”
‘将新添加的工作表赋值给变量ws
Set ws =ActiveWorkbook.Sheets(“Combined”)
‘关闭屏幕刷新
Application.ScreenUpdating = False
‘清除工作表中的数据
ws.Cells.Clear
‘遍历选取的工作簿文件
For Each e In fn
‘打开要从中获取数据的文件
With Workbooks.Open(e)
‘选取文件中的第1个工作表
With .Sheets(1)
‘获取工作表名并赋给变量
wsName = .Name
‘如果变量flag值为False则执行条件语句
If Not flg Then
‘将打开的文件的第1个工作表中的第1行数据
‘复制到开头新添加的Combined工作表第1行
.Rows(1).Copy ws.Cells(1)
‘在Combined工作表中的开头插入一列
ws.Columns(1).Insert
‘在插入的列的首行输入”Sheetname”
ws.Cells(1).Value =”Sheet name”
‘设置变量flag值为True
flg = True
End If
‘获取新添加的Combined工作表第2列
‘最后一个数据单元格之后的空单元格
‘注意End属性后括号中的2表示最后单元格之后的单元格
‘若括号中的数字为1则表示最后数据单元格
Set LastR =ws.Cells(Rows.Count, 2).End(xlUp)(2)
‘打开的工作簿第1个工作表中当前数据区域
With.Range(“A1”).CurrentRegion
‘除去标题行后的数据区域
With .Resize(.Rows.Count -1).Offset(1)
‘复制到Combined工作表中
.Copy LastR
‘偏移到第1列并将区域扩展到与相邻列已使用数据区域
‘相同的行数.注意LastR(, )的用法
‘GetBasename方法获取文件路径的最后部分
‘即工作簿文件名,不包含扩展名
LastR(, ).Resize(.Rows.Count).Value = _
CreateObject(“Scripting.FileSystemObject”).GetBasename(e)
End With
End With
End With
‘关闭要从中获取数据的工作簿文件
.Close False
End With
Next
‘自动调整列宽
ws.Range(“A1”).CurrentRegion.Columns.AutoFit
‘打开屏幕刷新
Application.ScreenUpdating = True
Set ws = Nothing
End Sub
代码遍历所选择的每个工作簿文件,将数据依次添加到新增加的工作表中,同时在工作表首列添加工作簿文件名。我对每行代码都进行了详细的注释,可以参照来理解代码。
有几句代码需要特别说明:
1.代码:
ws.Cells(Rows.Count, 2).End(xlUp)(2)
注意到最后的括号和放置在其中的数字2,这表明在工作表第2列中最后一个数据单元格之后的空单元格。如果将2修改为1,则表明是最后一个数据单元格。
2.代码:
LastR(, )
表明LastR代表的单元格左侧的相邻单元格。
3.代码:
CreateObject(“Scripting.FileSystemObject”).GetBasename(e)
中的GetBasename方法返回一个字符串,包含文件路径的最后部分,不包含扩展名。例如,若文件路径为“C:\ Excel\excelvba.xlsm”,则返回“excelvba”。


猜你喜欢
- Win11磁盘空间不足怎么解决?最近有用户反映这个问题,电脑磁盘空间不足会影响电脑的运行,造成系统启动慢,那么怎么清理磁盘空间呢?针对这一问
- 这是一个神奇的用法,出于某种需要,我们有时需要将一个区域中的数据转换为一列。比如:这个区域是A6:AF22,那我们可以利用数组公式来实现转换
- 雷神IGER Air是一款娱乐影音笔记本电脑,这款电脑搭载了英特尔第11代酷睿i7处理器以及发烧级独立显卡,能够满足用户们日常娱乐使用需求,
- 随着Win11系统的推出,很多用户都想要升级更新系统,但是近期就有苹果电脑用户在升级Win11时没有Win11的镜像包且无法跳过tpm,不知
- 为了使文档达到图文并茂的效果,我们可以在wps文字中为文档插入图片,那么,如何插入呢?下面就让小编告诉你wps文档怎样插入图片。wps文档怎
- 咱们在 操纵WPS文档和Word文档 停止 一样平常办公时, 常常 需求给文档 增加图片,来 愈加 明晰 清楚明了的 展示文章的主题, 可是
- 通过识图软件识别的文字或从网页上复制过来的文字,右端往往对不齐,传统的方法是用退格键一个一个的对齐。实际上有更加简单的方法。 原因
- Win10提示“任务管理器已被系统管理员停用”怎么办?有Win10系统的用户,想打开任务管理器查看电脑的性能时,发现任务管理器根本无法打开,
- 怎么给电脑安装语言包?有些用户可能想学习其他语言因此准备把系统的语言也改掉,但是却只有英语和中文怎么办?下面给大家分享Win7安装其他语言的
- 最近有Win7用户反映,使用电脑过程中,突然出现提示“microsoft visual c++ runtime error”,用户不知道该怎
- 很多老师在制作练习题或是出考卷的时候会用到word,内容排版完了不知道怎么设置卷头,那么卷头怎么制作呢?下面小编为大家介绍下word文档在制
- 小 同伴们在 事情中 常常会 碰到 这类 状况, 密密层层的数据看着都让人眼晕, 处置起来更是 费力, 略不 留神,就看错了,为了使数据看起
- 很多用户在使用谷歌浏览器时候,页面上会经常出现不安全的提示,遇到这一问题时候多数人不知道该如何解决,其实在浏览器设置中更改一下就可以了,接下
- 在Word文档中,边框和底纹对文字都有一种修饰的作用,如果运用得当,不仅可以增加美观性也可以突出文档中的重点内容。那么下面就由小编给大家分享
- 欢迎观看 Premiere Pro 教程,小编带大家学习 Pr 的基本编辑技巧,了解如何应用创意调整。「Lumetr
- 蓝牙适配器是各种数码产品能适用于蓝牙设备的一种接口转换器,采用全球通用的短距离无线连接技术的,为避免频段电子装置众多而造成干扰,因此采用保密
- Outline for mac是Mac os平台上的一款非常好用的Mac记事本软件。适用于Mac的大纲非常适合学生,教师,医生,律师,管理人
- win10系统已经慢慢的普及了,大部分小伙伴使用的时候都想要在上面使用自己习惯的字体,但是还不知道该怎么安装,今天就为你们带来了安装的方法。
- 罗技g502宏怎么设置?罗技g502鼠标是一款非常好用的游戏鼠标,拥有非常好的手感和灵明度,当然了这类游戏鼠标也支持设置鼠标宏,那么罗技g5
- 网易新闻如何用热词查找新闻?网易新闻是一款很不错新闻平台,用户们可以通过订阅喜欢的新闻种类来收看新闻,有时我们想要寻找一些带有关键词的新闻,