手把手教你使用窗体设计工具(二)

【前情回顾】

Kevin Cai,公众号:VBA基础入门手把手教你使用窗体设计工具(一)

12,追加输出列表 框架。(操作方法同文件夹路径一样)

13,在输出列表 框架内,追加 输出列表框。(工具箱,控件里面的列表框)

14,追加执行按钮 和 退出按钮。(操作方法同选择按钮一样)

15,追加 执行信息 框架。(操作方法同输出列表一样)

16,在执行信息框架内,追加 执行信息的显示标签。(工具箱,控件里面的标签)

17,写入执行按钮的代码。我们先将之前的代码复制过来稍加改动。(双击执行按钮后,粘贴代码)

    Dim fs, folder, files, fileDim inpath As StringDim nowRow As Integer

    '初始值设定inpath = Sheets('Tool').Range('C2')nowRow = 2

    'InputPath CheckIf inpath = '' Then MsgBox '请输入InputPath!' Exit SubEnd 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 + 1Next

    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, fileDim inpath As String'初始值设定inpath = TextBox1.TextLabel1.Caption = '''InputPath CheckIf inpath = '' Then    MsgBox '请输入文件夹路径!'    Exit SubEnd IfSet fs = CreateObject('Scripting.FileSystemObject')Set folder = fs.getfolder(inpath)Set files = folder.filesListBox1.ClearFor Each file In files    ListBox1.AddItem (file.Name)NextLabel1.Caption = '完了'

      18,让我们测试一下代码的正确性。

      按F5运行代码。

      点击选择,选择文件夹路径。

      点击执行。

      可以看见文件夹中的文件名被正确的写入了输出列表,并在执行信息中显示完了。说明我们的代码是正确的。到目前为止,我们算是把功能基本上移植到了窗体中去。

      下期我们接着分享 优化这个工具的不足。

      (0)

      相关推荐