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”。
猜你喜欢
- 一、如何统计word字数Word本身提供了强大的字数统计功能,可统计出页数、字数、段落数、行数等信息。要使用此功能只需执行 “工具” 菜单→
- 如果遇到一个较大的Excel工作表,却需要打印一些不连续区域的数据,应该怎么办呢?其实我们可以用Excel的“视面管理器”就可以解决不连续区
- 如何在Mac的Word 2011中为文档创建新样式?Word样式的真正威力来自于创建自己的样式。在Mac的Office 2011中,Word
- 今日凌晨,苹果推送了 iOS 和 iPadOS 13.6 的第三个测试版,版本号为 17G5059c。不过,本次是一个小的更新,没有明显的增
- 在应用程序中使用快捷键,可以使我们避免在键盘与鼠标之间来回切换,从而节省大量的时间,显著地提高工作效率。多掌握一些常用的快捷键,可以使您告别
- 1、首先我们打开wps,直接在工具栏中点击“插入”,在菜单栏中点击“表格”,在下面你将有三种方法制作表格。选择一种方法画出你想要制作的行和列
- 一、word域的含义、概念WORD域的英文意思是范围,类似数据库中的字段,实际上,它就是Word文档中的一些字段。每个Word域都有一个唯一
- 当我们天打开word文档,居然提示:文件已被“另一用户”锁定,无法编辑。那应该怎么办呢?下面由小编和大家说说解决的办法~~请选择:1、打开只
- 第1步,打开Word2013窗口,依次单击“文件”→“打开”按钮,如图1所示。 图1 单击“打开”按钮第2步,在“
- 相信有不少用户和小编一样在使用电脑的过程中总会遇到各种各样的问题,其中就比如抑有的用户在电脑待机之后重新唤醒出现白屏的情况,那么哦我们遇到这
- 一、快速插入表格拖动“插入表格”能插入的最大表格跟该图标位置、显示分辨率有关。如使用800×600分辨率时最大为18行×28列。二、表格中的
- 在Word文档里录入文字时,设置好隔一段时间自动保存文档,可以确保遭遇突然停电,电脑关机,或是突然不小心关掉了word软件时,可以恢复最近一
- 在上一期的“Office小便笺”栏目中,已经有朋友介绍了如何增加PowerPoint的“后悔”次数。其实,相对于主要用于演示的PowerPo
- 相信还有很多朋友对于什么时候能够见到office2016正式版都很好奇,下文小编就为大家带来office2016正式版下载发布时间的介绍,下
- word字体间的行距怎么调整 1、首先我们把要整理的文章复制到Word文档里面。2、按
- 1、先左键单击选中正确的单元格。2、在相应的单元格文本框中输入”=E5+F5-G5+Sheet1!B3"3、这么多数据,输入单元格
- 1、下载个word转pdf插件下载个word转pdf插件(SaveAsPDFandXPS) [微软]然后安装就可以了 &nbs
- 在电脑中打字的时候我们有时候会需要用到一些特殊符号,比如一些网友在工作中需要用到的勾号和叉号,不过很多网友都不知道该怎么输入这些符号,下面就
- Word可以说是我们日常工作学习中经常会使用到的文档之一,而不少用户最近在使用Word文档的时候发现自己的Word文档第一页空白页删除不掉,
- 文本从word转换成另一种格式经常会出现乱码的问题。朋友都问,为什么使用PDF转换器将word转pdf文档后,Word文档里面的文字全是乱码