使用vba宏将多个excel文件合并到多个文件夹中

时间:2017-09-14 22:08:43

标签: excel vba excel-vba merge

需要遍历多个文件夹(同一目录中的3个文件夹)并合并这些多个文件夹中的所有文件。

以下代码整合了单个文件夹中的所有文件(A)。我需要合并来自3个不同文件夹的所有文件:A,B和C.

我的问题是:如何添加循环以合并其余2个文件夹中的文件

这是excel-vba代码:

{{1}}

2 个答案:

答案 0 :(得分:0)

秘诀在于更改sHostFolder的值,该值当前等于:     sCURFolderPath& “\第一个月”

这里有两种情况:要么(1)知道子文件夹的数量和名称,要么(2)子文件夹的数量和名称未知

方案(1):您可以将上面的代码放入一个包含文件夹名称的单个字符串参数的函数中,而不是循环,然后调用该函数三次:

MyFunction("FirstMonth")
MyFunction("SecondMonth")
etc...

方案(2):一旦知道了目录的名称,就可以重复调用文件系统Dir对象:

Dir(sitePath,vbDirectory)

你的循环可以检查每次返回的长度/值,如果有子目录名,那么你可以使用这个值作为sHostFolder变量的一部分,然后运行你现有的代码。显然,在Dir()无法返回有效的子目录名称之后,您将退出循环。

祝你好运!

答案 1 :(得分:0)

我成功地使用Excel Power Query进行合并,节省了大量的编码时间。谢谢@teylyn:):)