我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!
前两节课介绍了如何利用VBA弹出文件或者是文件夹 选取器 供用户选择,用的是 Application 的 FileDialog 对象实现的,有时在选取文件时,我们希望可供选择的文件都是属于一种类型的或者是某几种类型的,而不是把所有的文件都显示在选取器中,这时该怎么办呢?这时就需要利用Application的GetOpenFilename方法来实现。
语法: GetOpenFilename (FileFilter, FilterIndex, Title, ButtonText, MultiSelect) 功能: 显示标准的 “打开” 对话框,并获取用户文件名,而不必真正打开任何文件。 各个参数的含义:
"Text Files (*.txt),*.txt,Add-In Files (*.xla),*.xla"
若要对一种文件筛选器类型使用多个 MS-DOS 通配符表达式,请使用分号来分隔通配符表达式;例如 "Visual Basic Files (*.bas; *.txt),*.bas;*.txt"
。
如果 FileFilter 被省略,则此参数默认为 "All Files (*.*),*.*"
。
此方法返回选定文件名或用户输入的文件名。
返回的文件名可能包含路径规范。 如果 MultiSelect 为 True,返回值为一组选定文件名(即使用户只选择一个文件名,也不例外)。 如果用户取消了对话框,则该值为 False。
此方法可能会更改当前驱动器或文件夹。
案例:


Sub 按类型筛选文件()
On Error Resume Next
Dim filename, i%
filename = Application.GetOpenFilename("txt文件,*.txt,Excel文件,*.xlsx,jpg文件,*.jpg,所有文件,*.*", , "请选择文件", , True)
If Err.Number > 0 Then Exit Sub
For i = 1 To UBound(filename)
Cells(i, 1) = filename(i)
Next
End Sub
向左滑动可以查看完整代码
代码中for……next部分 ,是为了把获取的文件名罗列到Excel表中。
打
开选取器并按类型选择文件的关键代码就一句:
filename = Application.GetOpenFilename("txt文件,*.txt,Excel文件,*.xlsx,jpg文件,*.jpg,所有文件,*.*", _
, "请选择文件", , True)
难点在第一个参数的写法,
语法格式:提示语,扩展名
如果文件的类型比较多,那就:
提示语,扩展名,提示语,扩展名 ,提示语,扩展名 ……
中间用逗号隔开,这样一直往下写就可以。
如果是一种类型的文件,扩展名可能有好几个,比如图片文件,有jpg格式的,
有bmp格式的,写法如下:
提示语,*.jpf;*.bmp,扩展名之间用分号隔开。
本节的分享就到这里,鹏哥祝大家每天都有进步。
聚米为谷
博学宏才
更多学习内容
手机端请扫描
电脑端请登录
www.mihong.top
