excel vba获取目录下的所有文件
用惯了linux,很不习惯使用windows下的软件思维处理问题。今天遇到了这个一个简单的问题,一个目录里有一部分采集的无用图片,想遍历出来,通过sql语句查看这些图片属于那一篇文章。本来在linux下可以通过ls -1(不是L,是"一 " )获取所有文件的列表。
一、ls -1查看文件列表
1[root@91it pic]# ls -1
220141114_01003389.gif
320141114_01012846.jpg
420141114_01014141.png
520141114_01014350.jpg
620141114_01023534.png
720141114_01023535.png
820141114_01023547.jpg
920141114_01023587.jpg
1020141114_01023612.png
1120141114_01023613.png
二、dir /b 法
由于手头暂时没有linux,又赖得再开虚拟机。所以就想到了win下的dos命令将所有的文件列表输出到文件,再通过excel 公式生成sql 语句。具体可以通过如下命令:
1C:UsersAdministrator>dir c:pic /b
220141114_01003389.gif
320141114_01012846.jpg
420141114_01014141.png
520141114_01014350.jpg
620141114_01023534.png
720141114_01023535.png
820141114_01023547.jpg
920141114_01023587.jpg
1020141114_01023612.png
1120141114_01023613.png
1220141114_01023627.png
还支持使用 “dir c:pic /b c:one.xls"支持生成到excel文件中。
三、excel vba生成
本来这两种方法都算是比较完美简单了,不过之前了解过excel 的vba功能很强,也试了下,方法为打开excel,使用快捷键alt + F11 打开excel vba界面,在相应的sheet工作薄界面使用如下代码:
1Sub Iterate_Files()
2Dim ctr As Integer
3ctr = 1
4Path = "C:pic " ' Path should always contain a '' at end
5File = Dir(Path) ' Retrieving the first entry.
6Do Until File = "" ' Start the loop
7 ActiveSheet.Cells(ctr, 1).Value = File
8 ctr = ctr + 1
9 File = Dir() ' Getting next entry.
10Loop
11End Sub
然后运行F5 运行,运行完再按ALT+F11返回excel界面,发现所有的文件已经显示到本地列表中。如果想带上文件的路径,可以将第七行更换为:
1ActiveSheet.Cells(ctr, 1).Value = Path & File
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/excel-vba-dir-files/3943.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.