SelectAFile.png
Application.FileDialog(DialogType)的配置参数和函数解释:
DialogType:
Application.FileDialog(msoFileDialogFilePicker) - 选择文件
Application.FileDialog(msoFileDialogFolderPicker) -选择文件夹
Title - 弹出文件选择窗口的标题。
AllowMultiSelect - 是否允许选择多个文件或者文件夹,True为多选,False为单选。
InitialFileName - 默认选择对话框的路径以及默认文件名
Filters.Clear - 清除当前的过滤规则。
Filters.Add description, criteria, position - 添加过滤规则
description - 规则名称;
criteria - 过滤规则,过滤txt结局的文件规则为“.txt”,同一条规则里添加多个过滤项通过“;”来隔开,例如同时过滤.xls和.xlsx的文件规则为".xlsx; *.xls"
postion - 规则插入的位置,起始为1。
SelectedItems - 获取选择到的项,为数组,起始为1。
ButtonName - 选择按键名称。
1 文件选择对话框
源代码示例:
'#########################################################
'选择单个文件对话框
Sub SelectSingleFileDialog()
'通过对话框选择文件
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Select A File" '选择窗口的标题
.InitialFileName = "D:\TestFolder\TestFile.txt" '初次打开窗口的路径以及默认名称
.AllowMultiSelect = False '是否允许选择多个文件
.Filters.Clear '清除现有规则
.Filters.Add "Text File", "*.txt" '增加规则
.Filters.Add "EXCEL File", "*.xlsx; *.xls", 1 '增加规则到第一位
.Filters.Add "All File", "*.*", 1 '增加规则到第一位
If .Show Then '显示文件选择对话框
.ButtonName = "Select Me"
Set ipath = .SelectedItems '获取选择项,无论是否选择一项还是多项,返回的选项都是多项
End If
End With
If IsEmpty(ipath) Then Exit Sub '如果按取消键,退出
ipath = ipath(1) '获取第一项选择
Debug.Print ipath '输出选择文件名
End Sub
2 文件夹选择对话框
源代码示例:
'#########################################################
'选择一个文件夹
Sub SelectFolderDialog()
'通过对话框选择文件夹
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Select Folders"
If .Show Then
ipath = .SelectedItems
End If
End With
If IsEmpty(ipath) Then Exit Sub '如果按取消键,退出
Debug.Print ipath(1) '输出文件夹路径
End Sub
|