凤舞蝶衣 发表于 2014-11-19 16:56:31

利用VBA轻松制作文件目录

在Excel中利用VBA能够轻松遍历文件夹中的每个文件,并能将获取的每个文件名字添加到单元格中,制成文件目录。
实例描述:小张是一位影视作品爱好者,在电脑硬盘上分门别类地收藏了大量影视作品(图1)。他想将各个类别文件夹中影视资料的文件名制成目录存放到Excel工作表中。如果一个一个文件名去复制粘贴到工作表中,这样的工作量是可想而知的。那有没有什么好的办法来帮助小张解决这个难题呢?

实例分析:我们想,既然不同类型的影片存放在不同的文件夹中,那么我们可以遍历每个文件夹中的影视文件并获取它们的文件名,然后在不同的工作表中进行查找。如果工作表中已经存在,就不要添加了,否则就在相应的工作表中添加一条件记录。那如何实现相应的任务呢?请跟我来做吧!
用VBA遍历文件夹
这个过程主要是在Excel中编写VBA代码,通过代码遍历文件夹中的每个文件并获取相应的文件名。一提到编写代码,你可能就有些犯晕了。其实,程序代码也没那么神秘,在这里你可先将我的代码输入或复制到你的文件中,然后看看我的解释,一切就OK了!
首先,打开Excel 2003,点击“工具→宏→Visual Basic编辑器”菜单,这时就会弹出Microsoft Visual Basic程序窗口,也就是VBA的编辑器。在VBA编辑器窗口中选择“插入→模块”菜单,这时在右侧可以看到空白的代码编辑区域,我们可以尝试着输入图中代码(图2)。代码下载地址:http://iask.sina.com.cn/u/ish?uid=1704202287

在上述代码中,共编写了两个过程,分别为FileList和ml。FileList这个过程的作用是遍历参数Path所代表的文件夹及其子文件夹中的文件,并把根据子文件夹的名字在Excle中建立工作表。其中,在FileList过程中,FileSystemObject的简称是FSO,当然也就是我们的俗称FSO组件了。FSO,正如UFO般令人激动、令人神往,当然更多的亦是让人欢喜让人忧。君不见某空间服务商广告:100MB空间只要60RMB/年,支持数据库,支持什么什么……一问不支持FSO,立马泄气。该组件可以检测并显示出系统驱动器的信息分配情况;还能够创建、改变、移动和删除文件夹,并能探测一些给定的文件夹是否存在,若存在,还能提取出该文件夹的信息,如名称、被创建或最后一次修改的日期,等等。FSO还使得对文件的处理变得很容易。
正如其他组件的建立一样,FSO的引用也必须建立连接。通过语句:
Set fso=CreateObject("Scripting.FileSystemObject"),使FSO组件可以被fso变量调用,即可以通过变量fso来处理驱动器上的文件或是文件夹了。
制作便于操作的按钮
为了操作方便我们可把上面我们编写的过程放到一个按钮上。首先,我们在Excel中选择“视图→工具栏→窗体”菜单,在“窗体”工具栏上点击“按钮”,按住鼠标左键根据需要拖出一个按钮。在弹出的“指定宏”的窗口中,我们选择过程ml,确定后退出。最后,在按钮的标签处单击,修改按钮的标签,如更改为“生成目录”。
最后,点击“生成目录”按钮,就会发现工作簿中添加了以影视作品分类文件夹命名的工作表,并且每个工作表中都生成了相应的目录(图3)。

小提示:激活VBA代码
要想使这些事件即VBA代码起作用,我们需要调整宏的安全性。选择“工具→宏→安全性”,把宏的安全性设置为“低”。
          
页: [1]
查看完整版本: 利用VBA轻松制作文件目录

邓州市,邓州网,邓州吧,邓州论坛,邓州门户网