FileDialog对话框的使用
Application.FileDialog()对象
一.用于打开一个对话框,获取一个或多个文件名或者文件夹名称(打开类型取决于参数类型)
Application.FileDialog 属性 (Excel)
解决问题:
1.要导入或者输出表格只能放在某些特定文件夹下(如当前工作簿文件夹下)
运行效果:弹出对话框选择文件或者文件夹,方便导入或者输出表格
本文内容
返回一个 FileDialog 对象,它表示文件对话框的实例。
语法
expression.FileDialog (fileDialogType)
expression:表示 Application 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
fileDialogType | 必需 | MsoFileDialogType | 文件对话框的类型。 |
备注
MsoFileDialogType 可为下述常量之一:
- msoFileDialogFilePicker。 允许用户选择文件。
- msoFileDialogFolderPicker。 允许用户选择文件夹。
- msoFileDialogOpen。 允许用户打开文件。
- msoFileDialogSaveAs。 允许用户保存文件。
示例1.msoFileDialogFolderPicker允许用户选择文件文件夹
Sub UseFileDialogOpen()
Dim lngCount As Long
' Open the file dialog
With Application.FileDialog(msoFileDialogFolderPicker) '选择文件夹msoFileDialogFolderPicker
' With Application.FileDialog(msoFileDialogSaveAs) ’保存文件msoFileDialogFolderPicker
.AllowMultiSelect = True '允许多选,选文件夹时,只能单选,若选文件时可按住shift多选。
.Title = "测试" '窗口标题
.ButtonName = "就他了" '需要放在show方法之前
.Show '显示出来
' Display paths of each file selected
For lngCount = 1 To .SelectedItems.Count
MsgBox .SelectedItems(lngCount) '返回包括文件路径的文件名
Next lngCount
End With
End Sub
运行后效果
1.
2.选择文档这个文件夹
3.通过消息对话框输出所选文件夹的路径名称
示例2.msoFileDialogSaveAs显示为另存为标题,
说明:实际返回为一个文件名称,此名称包含文件所在的文件夹
新建一个文件并且弹出对话框选择保存文件夹
Sub UseFileDialogOpen()
Dim lngCount As Long
' Open the file dialog
With Application.FileDialog(msoFileDialogFolderPicker) '选择文件夹msoFileDialogFolderPicker
' With Application.FileDialog(msoFileDialogSaveAs) ’保存文件msoFileDialogFolderPicker
.AllowMultiSelect = True '允许多选,选文件夹时,只能单选,若选文件时可按住shift多选。
.Title = "测试" '窗口标题
.ButtonName = "就他了" '需要放在show方法之前
.Show '显示出来
' Display paths of each file selected
For lngCount = 1 To .SelectedItems.Count
MsgBox .SelectedItems(lngCount) '返回包括文件路径的文件名
Next lngCount
End With
End Sub
文件筛选器:属性方法
Application.FileDialog() 的各种 方法
1.Application.FileDialog() .Filters属性
用途:用于筛选要选择的文件(根据后缀名称筛选)
关键代码说明
Dim fd As FileDialog' 1.申明一个 FileDialog 对象.
2.创建一个FileDialog 对象.
Set fd = Application.FileDialog(msoFileDialogFilePicker) '文件选择
With fd
.Filters.Clear '清除之前的文件扩展名
'添加一个包含 xls 和 xlsm图像的过滤器,并将其作为列表中的第一项。
.Filters.Add "excel工作簿", "*.xls; .xlsm; .xls", 1
.Filters.Add "word工作簿", ".doc; *.docx", 2 '可以添加多个文件后缀名,后面数字2表示第二位
end with
示例打开一个文件筛选器:限制只能选择excel 文件、word文件
Sub Main()
'申明一个 FileDialog 对象.
Dim fd As FileDialog
'创建一个FileDialog 对象.
Set fd = Application.FileDialog(msoFileDialogFilePicker) '文件选择
'定义一个变量去获得路径
'the variable must be a Variant because For Each...Next
'routines only work with Variants and Objects.
Dim vrtSelectedItem As Variant
'Use a With...End With block to reference the FileDialog object.
With fd
.Filters.Clear '清除之前的文件扩展名
.Filters.Add "excel工作簿", "*.xls; *.xlsm; *.xls*", 1
.Filters.Add "word工作簿", "*.doc; *.docx", 2 '可以添加多个文件后缀名,后面数字2表示第二位
'添加一个包含 xls 和 xlsm图像的过滤器,并将其作为列表中的第一项。
'使用 Show 方法显示 File Picker 对话框并返回用户的操作。
'如果用户按下按钮。
If .Show = -1 Then
'Step through each string in the FileDialogSelectedItems collection.
For Each vrtSelectedItem In .SelectedItems 'vrtSelectedItem包含所选的文件路径,下面输出路径
MsgBox "Selected item's path: " & vrtSelectedItem
Next vrtSelectedItem
'如果用户取消
Else
End If
End With
'Set the object variable to Nothing.
Set fd = Nothing
End Sub
运行效果:
本文内容
获取 FileDialogFilters 集合。 只读。
语法
expression.Filters
expression 一个代表 FileDialog 对象的变量。
返回值
FileDialogFilters
示例
以下示例使用 FileDialog 对象显示“文件选取器”对话框,并在消息框中显示每个选定的文件。 该示例还将添加一个名为 Images 的新文件筛选器。
FileDialog的所有方法和属性
应用3获取所选文件名并且打开所选文件
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True '允许多选
.InitialFileName = InitialFileName ’初始文件路径,需要先定义
.Filters.Add "Excel(*.xls*)", "*.xls*", 1
.Title = "选择文件"
If .Show = -1 Then
Tem_Count = 0 '记录所选文件个数
For Each vrtSelectedItem In .SelectedItems '返回文件路径的合集,vrtSelectedItem为variant变量需要先定义好
Tem_Count = Tem_Count + 1 ’计数加1
Str_Name = vrtSelectedItem 'Str_Name为string 类型变量
str_ArrFilePath(Tem_Count) = Str_Name '存入文件名
MsgBox Str_Name '输出文件名
Next vrtSelectedItem
Else
Exit Sub ’取消选择则退出
End If
End With
for i=1 to Tem_Count
Workbooks.Open str_ArrFilePath(i) '打开所选文件
next
Set wk = ActiveWorkbook
TemWBName = wk.Name
共有 0 条评论