Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将Excel工作簿合并到一个workwook中_Vba_Excel - Fatal编程技术网

Vba 将Excel工作簿合并到一个workwook中

Vba 将Excel工作簿合并到一个workwook中,vba,excel,Vba,Excel,我有50本工作手册,每本有7张工作表。现在,我需要以这样一种方式将它们组合起来,新工作簿应该有7个工作表,每个工作表应该有来自所有50个工作簿的相应数据 例如:新工作簿的工作表1必须包含50本工作簿中所有工作表1的数据。同样,工作表2应包含所有50本工作手册中表2的所有数据,以此类推。。。直到第7页。次简单合并() 将书目设置为工作簿 Dim mergeObj作为对象、dirObj作为对象、filesObj作为对象、everyObj作为对象 Application.ScreenUpdating=

我有50本工作手册,每本有7张工作表。现在,我需要以这样一种方式将它们组合起来,新工作簿应该有7个工作表,每个工作表应该有来自所有50个工作簿的相应数据

例如:新工作簿的工作表1必须包含50本工作簿中所有工作表1的数据。同样,工作表2应包含所有50本工作手册中表2的所有数据,以此类推。。。直到第7页。

次简单合并()

将书目设置为工作簿

Dim mergeObj作为对象、dirObj作为对象、filesObj作为对象、everyObj作为对象

Application.ScreenUpdating=False

设置mergeObj=CreateObject(“Scripting.FileSystemObject”)

'在此处更改excel文件的文件夹路径

Set dirObj=mergeObj.Getfolder(“C:\Users\607182604\desktop\Heinz Jun'15 MI Template\consolidated”)

设置filesObj=dirObj.Files

对于FileObj中的每个everyObj

Set bookList=工作簿.打开(everyObj)

范围(“A2:IV”和范围(“A65536”)。结束(xlUp)。行)。复制

此工作簿。工作表(1)。激活

范围(“A65536”)。结束(xlUp)。偏移量(1,0)。特殊粘贴

Application.CutCopyMode=False

书单,关闭

下一个

端接头

@Douglancy和@omegastripes我希望数据被逐行合并,没有任何间隙,是的,所有工作簿都在相同的文件夹中。
我面临的问题是,它只是合并每个工作簿的第一个工作表。我想要的是,它应该将所有50个excel文件的数据与7个工作表合并到一个合并工作簿中,但要合并7个不同的工作表。

此网站上有许多您需要的好例子。循环浏览工作手册;循环浏览工作表,查找最后一行;复制和粘贴到特定行。也有很多非常相似的请求,都有很好的答案。看看其中的一些,根据您的需要进行修改,当您陷入编码困境时,请在此处提出具体问题!我看了他们中的大多数。。。。但几乎所有这些都告诉我们如何将多个工作簿和一张工作表组合成一个工作簿和多张工作表。我的有点不同。请指定如何将多个工作表中的数据合并到结果工作表中(逐行,没有任何间隙?),以及从何处获取源工作簿(所有工作簿都放在某个文件夹中?)。还可以添加您尝试过的代码,正如@Douglancy所评论的。为什么不为前两个工作簿尝试录制宏,并寻找创建循环的模式?请查看我的进度,如果可以,请更正它。