手把手教你使用VBA做工具(二)
【前情回顾】
【需求】
实现将某一文件夹下所有文件名都整理出来的功能。
【实现思路】
1,选择文件夹
2,遍历文件夹下文件
3,把文件名写入到Excel中。
Kevin Cai,公众号:VBA基础入门手把手教你使用VBA做工具(一)
【跟我做】
11,新建Sheet页用来存放输出的文件夹内文件列表。
12,添加执行按钮。
13,写遍历文件夹的代码。
《代码解析》
1,inpath 为选择按钮选择文件夹后,生成在单元格C2的路径。
2,nowRow 为sheet页List的行数,初始行数为2。
3,避免文件夹路径为空,添加了inpath 的Check。
4,利用ClearContents 清空目标区域文字信息。
5,利用FileSystemObject 获取目标文件夹内文件,For Each 循环来对目标文件夹内文件进行遍历。
6,把遍历的文件名file.Name 赋给sheet页List 区域内。
7,不要忘记每循环一次,就要把nowRow 增加1。
Sub GetFiles()
Dim fs, folder, files, file
Dim inpath As String
Dim nowRow As Integer
'初始值设定
inpath = Sheets('Tool').Range('C2')
nowRow = 2
'InputPath Check
If inpath = '' Then
MsgBox '请输入InputPath!'
Exit Sub
End If
Set fs = CreateObject('Scripting.FileSystemObject')
Set folder = fs.getfolder(inpath)
Set files = folder.files
Sheets('List').Range('A2:A65536').ClearContents
For Each file In files
Sheets('List').Range('A' & nowRow) = file.Name
nowRow = nowRow + 1
Next
MsgBox '完了'
End Sub
14,把执行按钮关联刚才所写的代码方法GetFiles。
15,对于自己不确定一次就能成功的代码,来Debug(调试)看看。
15-1,单击侧边栏可以添加断点。
断点是什么意思?顾名思义,代码执行到这里就停了。
15-2,Debug中常用的快捷键。
F8:逐语句,一步一步执行。
F9:打断点,跟上面所说的单击侧边栏效果一样。
F5:执行到下一个断点,如果没有断点,则全部执行完。
15-3,点击运行。(或者按F5)
15-4,代码已经执行到断点位置,当前执行的行为黄色。
15-5,添加监视,可以一直观察监视对象的值等信息的变化。
方法1:右键,添加监视。
点击确定。
监视窗口可以看到这个对象的各种信息。
方法2:选中要监视的对象,拖拽到监视窗口。
16,点击运行(或者按F5)将代码执行完。
17,然后查看sheet页List内的内容是否正确。
这样我们的需求就成功地实现了。
是不是很简单呢?如果你成功了就请给我一个赞吧。