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)

相关推荐