VBA分享专栏excel的一些小技巧教程

Excel VBA和文件夹-1.8通过对话框灵活选定文件的小技巧

2019-06-18  本文已影响0人  Excel和VBA

前景提要

在之前,我们学习了如果通过对话框的形式来打开文件的方法,这种方法的好处就是两个字:灵活,我们不用在代码中强制指定并需要在某个文件夹中操作,也不用和其他的使用者多次强调文件的命名格式等方面的要求,代码的兼容性和通用性一下子就提高了很多,因为上一次主要是告诉大家如何通过VBA代码调出这个对话框的,一些细节的问题还没有来得及和大家分享,今天我们就继续来完善下上一次的代码,让脚本运行起来更加的人性化。

思路

对话框,顾名思义就是用户(代码编写者)和电脑之间的一个交互,我们告诉电脑我们需要作用,电脑收到我们的信息之后,就去执行对应的操作,但是仅仅调用window本身自带的对话框,似乎显得非常的不友好,来看看我们上一节的对话框窗体

对话框的标题:游览,游览什么?不是应该选择更加合适嘛?或者我想要更加人性化的提示,请选择指定的文件之类的,还有为什么我每次调用对话框窗体都固定在一个位置,这样我比较方便选择我想要的文件,比方说我想要固定在D盘,这样更加方便。。。

不要急,这一次我们就来分享下,如果解决上面的这些问题,让我们的窗体看起来更加的友好

还是按照我们一贯的风格,只展示本届知识点相关的代码,这样的好处就是方便大家能够清楚明白的看到知识点相关的代码,也方便大家后面的调试和操作。

上代码+代码解析

1,设置默认路径(D:\工作文件夹)

Sub test()

With Application.FileDialog(msoFileDialogFilePicker)

    .InitialFileName = "D:\工作文件夹"'指定默认路径

    If .Show = -1 Then

        For x = 1 To .SelectedItems.Count

            Debug.Print .SelectedItems(x)

        Next x

        Else

            MsgBox "您未作出任何选择,程序结束!"

            Exit Sub

    End If

End With

End Sub

效果如图:

1 [2].jpg

2.设置对话框标题

Sub test()

With Application.FileDialog(msoFileDialogFilePicker)

    .InitialFileName = "D:\工作文件夹" '指定默认路径

    .Title = "我是对话框标题,请看这里!"

    If .Show = -1 Then

        For x = 1 To .SelectedItems.Count

            Debug.Print .SelectedItems(x)

        Next x

        Else

            MsgBox "您未作出任何选择,程序结束!"

            Exit Sub

    End If

End With

End Sub

效果图如下:

2 [2].jpg

3.是否允许多选(这里设置的是不允许,如果需要的话,可以改为True就可以了)

Sub test()

With Application.FileDialog(msoFileDialogFilePicker)

    .InitialFileName = "D:\工作文件夹" '指定默认路径

    .Title = "我是对话框标题,请看这里!" '窗体标题

    .AllowMultiSelect = False '是否允许多选

    If .Show = -1 Then

        For x = 1 To .SelectedItems.Count

            Debug.Print .SelectedItems(x)

        Next x

        Else

            MsgBox "您未作出任何选择,程序结束!"

            Exit Sub

    End If

End With

End Sub

4.设置对话框默认打开的文件

Sub test()

With Application.FileDialog(msoFileDialogFilePicker)

    .InitialFileName = "D:\工作文件夹" '指定默认路径

    .Title = "我是对话框标题,请看这里!" '窗体标题

    .AllowMultiSelect = False '是否允许多选

    .Filters.Clear '清除文件过滤器

    .Filters.Add "Excel Files", "*.xls;*.xls" '设置打开文件的类型

    If .Show = -1 Then

        For x = 1 To .SelectedItems.Count

            Debug.Print .SelectedItems(x)

        Next x

        Else

            MsgBox "您未作出任何选择,程序结束!"

            Exit Sub

    End If

End With

End Sub

效果图如下:

4.jpg
上一篇下一篇

猜你喜欢

热点阅读