手把手教你使用窗体设计工具(二)
【前情回顾】
Kevin Cai,公众号:VBA基础入门手把手教你使用窗体设计工具(一)
12,追加输出列表 框架。(操作方法同文件夹路径一样)
13,在输出列表 框架内,追加 输出列表框。(工具箱,控件里面的列表框)
14,追加执行按钮 和 退出按钮。(操作方法同选择按钮一样)
15,追加 执行信息 框架。(操作方法同输出列表一样)
16,在执行信息框架内,追加 执行信息的显示标签。(工具箱,控件里面的标签)
17,写入执行按钮的代码。我们先将之前的代码复制过来稍加改动。(双击执行按钮后,粘贴代码)
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 '完了'
1,第7行的文件夹路径我们从文本框中获取了,而不是excel单元格,所以需要更改,改成 【inpath = TextBox1.Text】。
2,第23行的输出列表清空不是清空excel里面的单元格了,所以应该改成【ListBox1.Clear】。
3,第27,28行,因为不用向excel里面写入了,直接写入到窗体中的列表框,所以应该改成【ListBox1.AddItem (file.Name)】。从而不需要使用nowrow这个变量了,所以第3行的定义,以及第6行的给它赋初始值也便不需要了。
4,由于变更成把执行信息写入 执行信息的标签,所以第32行的弹信息框改为【Label1.Caption = '完了'】。并且,需要在一开始的时候给它赋初始值空。
【变更后代码】
Dim fs, folder, files, file
Dim inpath As String
'初始值设定
inpath = TextBox1.Text
Label1.Caption = ''
'InputPath Check
If inpath = '' Then
MsgBox '请输入文件夹路径!'
Exit Sub
End If
Set fs = CreateObject('Scripting.FileSystemObject')
Set folder = fs.getfolder(inpath)
Set files = folder.files
ListBox1.Clear
For Each file In files
ListBox1.AddItem (file.Name)
Next
Label1.Caption = '完了'
18,让我们测试一下代码的正确性。
按F5运行代码。
点击选择,选择文件夹路径。
点击执行。
可以看见文件夹中的文件名被正确的写入了输出列表,并在执行信息中显示完了。说明我们的代码是正确的。到目前为止,我们算是把功能基本上移植到了窗体中去。
下期我们接着分享 优化这个工具的不足。
赞 (0)