VBA for Excel (五)
本文涉及的内容
-
VBA中的输入输出
-
合并某文件夹下所有工作簿
思路
授之以鱼不如授之以渔,看过之前两篇你大概会控制工作簿了,这篇直接教你一般遇到问题我们该怎么做。本片的核心是实现某文件夹下所有工作簿的合并。
我们需要按文件、表、区域的思路进行问题的拆解
思路如上:程序的流程图如下
遍历工作表语法,在二篇。语法如下:
For each object in objects
[statements]
[Exit For]
Next
遍历工作部需要用到for循环,由于不清楚具体多少个文件,需要吧endnum只设置到足够大,当最后一个时需要退出,需要用到:
For counter = startnum To endnum [Step step]
[statements]
[Exit For]
Next
'if语句
if condition then
statements
end if
遍历工作簿
接下来是匹配文件名需要用到Dir函数,语法如下
Dir("路径\"&"*.xls*")
*
是通配符,可以代表出换行外任意个字符,以上语法找出路径下所有后缀是xls打头的文件
还有一个?
代表出换行外一个字符。其他的建议了解一下VBA正则。回归正题
Dir可以不带参数,他会继承你上一次的参数,你用一次就够了,以后运行不带参数的会查到下一个文件名。关闭文件后Dir()指向下一个就可以循环遍历所有文件了。
具体思路如下
Fname = Dir(StrPath & "*.xls*")
For i = 1 To 999
Workbooks.open
Workbook.Close False
Fname = Dir()
If Fname = "" Then Exit For
Next