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”。
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
excel2007导入外部数据时出错了怎么办?
![](https://img.aspxhome.com/file/2023/3/42533_0s.png)
EXCEL如何设置奇偶页打印页码在同一边
![](https://img.aspxhome.com/file/2023/4/37894_0s.jpg)
excel批量修改文件名的神技巧
![](https://img.aspxhome.com/file/2023/8/a140888_0s.jpg)
Word2007文档中缩小微软雅黑行距的两种教程
![](https://img.aspxhome.com/file/2023/4/28874_0s.jpg)
excel怎么没将一年内的水费的用量做成柱状图?
![](https://img.aspxhome.com/file/2023/8/40828_0s.jpg)
怎么批量删除替换Word 2010中回车的方法
![](https://img.aspxhome.com/file/2023/4/33904_0s.jpg)
在Excel2010 中 条件格式超过了三个怎么办?
![](https://img.aspxhome.com/file/2023/6/43146_0s.png)
Win10系统的窗口遮挡任务栏怎么解决?
![](https://img.aspxhome.com/file/2023/9/50839_0s.png)
如何把word转换成pdf格式
![](https://img.aspxhome.com/file/2023/3/19963_0s.jpg)
Win10电脑玩一会游戏卡死画面定格如何解决?
![](https://img.aspxhome.com/file/2023/0/50680_0s.png)
Word文档中自动生成章节号技巧
![](https://img.aspxhome.com/file/2023/0/21810_0s.jpg)
Win10专业版一直不断无限重启怎么办?
![](https://img.aspxhome.com/file/2023/5/49905_0s.png)
如何给word 2013文档图片设置样式效果
![](https://img.aspxhome.com/file/2023/6/32866_0s.jpg)
Word查找和替换高逼格用法技巧
![](https://img.aspxhome.com/file/2023/2/25752_0s.jpg)
word文档如何删除批注
![](https://img.aspxhome.com/file/2023/6/31616_0s.png)
word中插入域功能来动态统计文档字数
![](https://img.aspxhome.com/file/2023/9/24489_0s.jpg)
iPhone SE2推荐升级iOS16.3吗?老机型升级iOS16.3真实体验
![](https://img.aspxhome.com/file/2023/2/44752_0s.png)
excel缺勤人表排除重复项,怎么办?
![](https://img.aspxhome.com/file/2023/7/a142297_0s.png)
OneNote2013中的笔记怎么分类并整理?
![](https://img.aspxhome.com/file/2023/7/15347_0s.jpg)
Word技巧:3条文档编排特技
![](https://img.aspxhome.com/file/2023/5/18205_0s.png)