VBA 文件/文件夹对话框Application.FileDialog
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
赞 (0)