xshell打开本地文件夹文件_Excel VBA和文件夹-1.6遍历文件夹打开指定格式的文件...

本文介绍如何使用Excel VBA遍历文件夹,仅打开指定为.xlsx格式的文件,避免无关文件干扰,提高工作效率。通过类似正则的模糊匹配方法,实现对Excel文件的有效筛选。
摘要由CSDN通过智能技术生成

Excel VBA和文件夹-1.6遍历文件夹打开指定格式的文件

前景提要

之前我们学会了如何通过dir()来遍历文件夹并打开文件的方法,当你文件中有很多相同格式的文件要汇总的时候,就可以考虑采用这个方法了,不过实际工作中,我们总是会碰到很多种非常规的的问题,还是假设我们现在正在汇总文件夹中的数据,当我们使用上节我们学的dir()函数的时候, 会发现有些文件并不是excel文件,是一个图片,甚至是txt文件都有,原来有些人为了图方便,直接放在txt或者截个图完事,这种数据是需要经过二次处理的,直接拿过来汇总是不可能的,那么dir()能不能够指定就汇总某种类型的文件呢?

自然是可以的,这里采用的方法是类似正则的模糊匹配的方法

思路

老规矩,我们还是想象下,如果是我们人工操作的话,是如何区分的呢?很简单,看看文件结尾的格式就知道了,就是*****.xlsx这后面的.xlsx,前面我们说了,这里我们采用类似正则的模糊匹配的方法(正则的具体用法后面会阐述,这里只需要了解当前场景下的使用方法就好),好了,可以上代码了。

上代码

这里假设我们的目标文件在D:新建文件夹-dir的目录下,我们看看测试文件夹下面有各种不同的文件

8cd449dc1d192665b71409e19008acb0.png
Sub test()Dim FileName$FileName = "D:新建文件夹-dir"f = Dir(FileName & "" & "*.xlsx")Do While f <> "" Workbooks.Open FileName & "" & f Debug.Print f f = Dir() ActiveWorkbook.Close True Loop End Sub

为了更好的展示运行的效果,我们在测试代码的时候,注销掉了打开和关闭的命令,每找到一个文件就输入文件的路径,这样就可以更加清楚的知道实际运行的效果了,结果如下图:

4792a05bc2da266d5e8c83bf1a19b392.png

代码解析

FileName得到的就是文件夹的路径,这个我们在之前就已经解释过了,然后来看看下一行

f = Dir(FileName & "" & "*.xlsx")

这段代码和我们上一次的很像,确实是,非常像,仅仅是在后面增加了一点判断而已,这个判断就是*.xlsx,作用就是判断文件是以.xlsx结果的,就是office文件,这样程序仅仅会去打开报表文件,而其他的无关文件或者是需要我们二次汇总的文件,都不会干扰本次程序的执行,完美的达到了我们的目的。

为了更加清楚的说明效果,下面我们来调试下程序,这样能够更加清楚明白程序运行的过程,按下F8,进入调试

8ffb5be92aaea1f5b0992ef3a3908103.png

我们可以看到程序直接去寻找那些文件名是.xlsx的文件,而不会去碰其他类型的文件,这样很好的节省了我们的时间,也提升了效率,最终得到的结果,就是上面我们展示的那样了。

其实,VBA不仅仅可以打开和操作报表文件,其实它还可以操作txt文件,那么如何打开txt文件,如何操作txt文件呢?这些悬念大家可以先研究下,后面我们讲到VBA操作文本文件的时候,再和大家详细说明。

完整代码+注释

Sub test()Dim FileName$FileName = "D:新建文件夹-dir" '指定文件夹路径f = Dir(FileName & "" & "*.xlsx") '指定要遍历的文件类型,以.xlsx结果,也可以换成.xls(07版本的文件)Do While f <> "" '便利开始 Workbooks.Open FileName & "" & f '打开 'Debug.Print f f = Dir() '循环下一个文件 ActiveWorkbook.Close True '关闭当前打开的文件LoopEnd Sub '结束程序

通过上述的例子,我们可以发现VBA还是非常的灵活和强大的,毕竟VBA本身是window开发出来的脚本语言,虽然有局限性,但是在文件本身的处理上面还是非常的强大的,平时需要花费很多时间的事情,写好了VBA之后,点几下鼠标就可以搞定了,简直就是办公职场必备之良药啊。

本人已经打算长期分享一些网络搜集的各种VBA知识,如果大家有问题也可以提出来共同解决,一起进步,毕竟VBA的世界还是很大的。因为基本上都是自学的,很多代码和知识都是来源于网络的,如果在分享的过程中,正好拿了某位大神的代码,请告诉我,我将标注代码来源出处,也方便大家学习分享,谢谢!

=============================传送门==============================

Excel VBA和文件夹-1.3创建当天日期命名的文件夹

Excel VBA和文件夹-1.4打开文件夹内excel文件的方法

Excel VBA和文件夹-1.5遍历文件夹并打开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值