VBA中使用GetOpenFilename 方法,弹出文件选择框、取得文件全路径与文件名。
Sub vab_GetOpenFilename()
'GetOpenFilename相当于Excel打开窗口,通过该窗口选择要打开的文件,并可以返回选择的文件完整路径和文件名。
'显示标准的“打开”对话框,并获取用户文件名,而不必真正打开任何文件。
'语法:
'表达式.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
'表达式 : 一个代表 Application 对象的变量。
'说明:
'Application.GetOpenFilename(文件类型筛选规则(就是说明),优先显示第几个类型的文件,标题,是否允许选择多个文件名)
'参数解析:
'FileFilter: 一个指定文件筛选条件的字符串
'FilterIndex:指定默认文件筛选条件的索引号,取值范围为 1 到由 FileFilter 所指定的筛选条件数目。如果省略该参数,或者该参数的值大于可用筛选条件数,则使用第一个文件筛选条件。
'Title:指定对话框的标题。如果省略该参数,则标题为“打开”。
'ButtonText: 仅限 Macintosh
'MultiSelect:如果为 True,则允许选择多个文件名。如果为 False,则只允许选择一个文件名。默认值为 False
'注意:以上参数都是可选参数,数据类型均为Variant。
Dim info
info = Application.GetOpenFilename( _
FileFilter:=excel文件(*.xls),*.xls,excel文件(*.xlsx),*.xlsx,Excel 启用宏的工作簿(*.xlsm),*.xlsm, _
FilterIndex:=2, _
Title:=请选择文件, _
MultiSelect:=True)
If TypeName(info) = boolean Then
'如果没有做任何选择,退出程序
Exit Sub
Else
'获取 选择的文件完整路径和文件名
Dim index As Integer
For index = 1 To UBound(info)
'循环获取选择的文件的完整路径
MsgBox info(index)
Next
End If
End Sub