一 Excel VBA学习笔记:VBA如何弹出选择文件的窗口

之前介绍的操作文件的Dir函数与FSO对象都不会弹出窗口,让操作者选择文件 。VBA提供这种操作的 , 是另外的 Application “方法” 。
一、使用 Application.GetOpenFilename

一 Excel VBA学习笔记:VBA如何弹出选择文件的窗口

参数简解:FileFilter 筛选什么类型的文件,用文件后缀名筛选,只显示指定后缀名的文件 。FilterIndex 不知何意,可省略 。Title 窗口标题名称 。MultiSelect 是否可以多选 。
GOF = Application.GetOpenFilename("Excel Files , *.xls;*.xlsx", , "请选取文件", , MultiSelect:=False)’弹出选取文件的窗口If GOF = "False" Then'弹出窗口后,点击"取消" , GOF会被赋值False(不是false)MsgBox "未选择文件,程序中止"Exit SubEnd IfSet WB = Workbooks.Open(GOF)‘打开选择的文件,并赋值给WB对象变量
一 Excel VBA学习笔记:VBA如何弹出选择文件的窗口

示例中引号内"Excel Files , *.xls;*.xlsx" 都是FileFilter参数的值;只会显示该文件夹中后缀名为xls或xlsx的文件 。第1条语句可以简写:GOF =Application.GetOpenFilename("Excel 文件,*.xls*", MultiSelect:=False) 中间不需要打那么多“逗号” 。
此语句执行后会弹出窗口,选取文件后 , 会将文件名及其路径赋值给GOF变量 , GOF是个字符串变量,不是对象 。
如果MultiSelect:=True 多选文件后,GOF是个什么呢?
一 Excel VBA学习笔记:VBA如何弹出选择文件的窗口

如图:GOF成了一个一维数组(标号起始 1),储存下所有选择的文件名字 。打开“多选开关后”即使只选了一个文件也是一维数组格式 。打开文件语句就不可这么写了 Set WB = Workbooks.Open(GOF)。
【一 Excel VBA学习笔记:VBA如何弹出选择文件的窗口】Application.GetOpenFilename 在选择文件后,并不会对文件做出如“打开”等等操作;GetOpenFilename 不能指定初始的文件夹地址,就是弹出窗口显示的第一个文件夹;不能用来直接选取文件夹,如果这个文件夹下没有任何文件 , 你将无法选中这个文件夹 。

相关经验推荐