前景提要
在之前,我们学习了如果通过对话框的形式来打开文件的方法,这种方法的好处就是两个字:灵活,我们不用在代码中强制指定并需要在某个文件夹中操作,也不用和其他的使用者多次强调文件的命名格式等方面的要求,代码的兼容性和通用性一下子就提高了很多,因为上一次主要是告诉大家如何通过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
效果如图:
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
效果图如下:
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
效果图如下: