excel图表如何合并多个工作簿中的数据
我们使用代码来快速合并5个以上的Excel工作簿文件。但是,如果要合并的工作簿中的工作表名称不同,则它们位于每个工作簿的第一个工作表中;此外,在合并工作表的第一列输入对应的工作簿文件名,以便知道合并数据来自哪个工作簿文件。
同样,VBA代码可以用来快速解决问题。如果你说的不多,先编码:
子合并()
声明一个变量。
Dim fn,e
将ws设计为工作表
模糊成布尔型
调暗最后一个作为范围
将文件名改为字符串
打开选择文件对话框。
fn=应用。GetOpenFilename _
(“Excel(*”。xls*),*。xls*”,多选:=真)
如果没有选择文件,请退出。
如果不是,则退出接头
向当前工作簿添加新工作表。
设置ws=活动工作簿。工作表。添加
命名新添加的工作表组合。
ws。名称=“组合”
将新添加的工作表分配给变量ws。
设置ws=活动工作簿。工作表(“组合”)
关闭屏幕刷新。
申请。屏幕更新=假
清除工作表中的数据。
ws。细胞,清除
遍历选定的工作簿文件。
对于每个e In fn
打开要从中获取数据的文件。
使用工作簿。打开(e)
选择文档中的第一张工作表。
和。工作表(1)
获取工作表名称并将其分配给变量。
wsName=。名字
如果变量标志值为假,则执行条件语句。
如果不符合,那么
要打开的文件的第一个工作表中的第一行数据。
复制到新添加的合并工作表开头的第一行。行(1)。复制ws。细胞(1)
在合并工作表的开头插入一列。
ws。列(1)。插入
在插入列的第一行输入“Sheetname”。
ws。细胞(1)。Value=“工作表名称”
将变量标志值设置为真。
图=真
如果…就会结束
获取新添加的组合工作表的第2列。
最后一个数据单元格后的空单元格。
请注意,End属性后括号中的2表示最后一个单元格后的单元格。
如果括号中的数字是1,则表示最后一个数据单元格。
设置LastR=ws。单元格(行。计数,2)。结束(xlUp)(2)
打开的工作簿的工作表1中的当前数据区域。
和。范围(“A1”)。当前区域
删除标题行后的数据区。
和。调整大小(. row . count-1)。偏移量(1)
复制到组合工作表。复制LastR
偏移到第1列,并将该区域扩展到相邻列的已用数据区域。
行数相同。注意LastR(,)的用法。
方法获取文件路径的最后一部分。
即不带扩展名的工作簿文件名。
LastR(,)。调整大小(.行数.计数)。值=_
CreateObject("脚本。文件系统对象”)。GetBasename(e)
以…结尾
以…结尾
以…结尾
关闭要从中获取数据的工作簿文件。关闭假
以…结尾
然后
自动调整列宽。
ws。范围(“A1”)。
打开屏幕刷新。
申请。屏幕更新=真
设置ws=无
末端接头
该代码遍历每个选定的工作簿文件,依次将数据添加到新添加的工作表中,并将工作簿文件名添加到工作表的第一列中。我对每一行代码都做了详细的注释,可以参考来理解代码。
有几个代码需要特别说明:
1.代码:
ws。单元格(行。计数,2)。结束(xlUp)(2)
请注意最后一个括号和其中的数字2,它表示工作表第二列最后一个数据单元格之后的空单元格。如果2被修改为1,则表示它是最后一个数据单元格。
2.代码:
LastR(,)
指示由LastR表示的单元格左侧的相邻单元格。
3.代码:
CreateObject("脚本。文件系统对象”)。GetBasename(e)
中的GetBasename方法返回一个字符串,该字符串包含文件路径的最后一部分,没有扩展名。例如,如果文件路径为“c : \ Excel \ Excel MBA . xlsm”,则返回“excelvba”。
版权声明:excel图表如何合并多个工作簿中的数据是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。