多个工作簿中的工作表汇总到一个工作簿中,多个工作表分别以原工作簿的名称命名,请好心人帮忙
发布网友
发布时间:2022-03-03 03:13
我来回答
共3个回答
热心网友
时间:2022-03-03 04:42
作为一个找了一天痛苦的人,我终于找到了一个正确的方法,希望其他所有苦苦追求这个准确代码的人能够最后和我一样,找到这个准确的代码,预祝天下有心人,终成大业!
正确代码如下:
'功能:把多个工作簿的第一个工作表合并到一个工作簿的多个工作表,新工作表的名称等于原工作簿的名称Sub
Books2Sheets() '定义对话框变量 Dim
fd As FileDialog Set fd =
Application.FileDialog(msoFileDialogFilePicker) '新建一个工作簿 Dim
newwb As Workbook Set newwb =
Workbooks.Add With
fd If .Show = -1
Then '定义单个文件变量 Dim
vrtSelectedItem As
Variant '定义循环变量 Dim
i As
Integer i
=
1 '开始文件检索 For
Each vrtSelectedItem In
.SelectedItems '打开被合并工作簿 Dim
tempwb As
Workbook Set
tempwb =
Workbooks.Open(vrtSelectedItem) '复制工作表 tempwb.Worksheets(1).Copy
Before:=newwb.Worksheets(i) '把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsx newwb.Worksheets(i).Name
= VBA.Replace(tempwb.Name, ".xls",
"") '关闭被合并工作簿 tempwb.Close
SaveChanges:=False i
= i +
1 Next
vrtSelectedItem End
If End
With Set fd =
NothingEnd Sub
热心网友
时间:2022-03-03 06:00
国产软件wps2010版安装插件后,具有这个功能。
不改变原来工作表的表名。
热心网友
时间:2022-03-03 07:35
给你个电子表格合并软件吧。