相关知识点:
Application.FileDialog 窗体编程相似,此对象代表一个文件对话框,可以是打开、保存等多种形式
FileDialog(1) 代表文件打开对话框,即msoFileDialogOpen,直接调用Execute方法,直接执行打开
FileDialog(2) 代表文件保存对话框,即msoFileDialogSaveAs,直接调用Execute方法,直接执行保存
FileDialog(3) 代表文件浏览对话框,即msoFileDialogFilePicker
FileDialog(4) 代表文件夹浏览对话框,即msoFileDialogFolderPicker,不支持多项选择
FileDialog.Filters 代表文件对话框中“文件类型过滤器”
Filters.Add 添加一个文件类型
Filters.Clear 清除目前已有的所有文件类型过滤(即不显示所有文件)
.show 返回值是0,用户点击了“取消”,返回值为-1,则点击了“打开”等功能按钮
FileDialog.SelectedItems(n) 用户在文件对话框中选中的第n个文件(文件夹)名字。
例1 文件对话框的各种类型,选中一个文件
Sub fileDialogdemo()
Dim fd as FileDialog
Set fd=application.FileDialog(msoFileDialogFilePicker)
Fd.title=”打开报表文件” ‘打开对话框标题
Fd.initialfilename=”d:\vbademeo\” ‘打开指定文件夹(直接定位)
Fd.filters.Clear ‘先清理掉默认过滤器内容,用户指定过滤器
Fd.filters.Add ”execl文件”,”*.xlsx;*.xlsm”
Fd.filters.Add ”文本文件”,”*.txt”
Fd.filterIndex=2 ‘过滤器指定默认文件类型“文本文件”
‘Fd.show ‘显示文件框
If fd.show=-1 Then
MsgBox fd.SelectedItems(1) ‘用户选中了第一个文件名
End If
End Sub
例2 文件对话框的各种类型,选中多个个文件
Sub fileDialogdemo2()
Dim fd as FileDialog
Set fd=application.FileDialog(msoFileDialogFilePicker)
Fd.title=”打开报表文件” ‘打开对话框标题
Fd.AllowMultiSelect=Ture ‘ 可以多项选择为True,默认为False
Fd.initialfilename=”d:\vbademeo\” ‘打开指定文件夹(直接定位)
Fd.filters.Clear ‘先清理掉默认过滤器内容,用户指定过滤器
Fd.filters.Add ”execl文件”,”*.xlsx;*.xlsm”
Fd.filters.Add ”文本文件”,”*.txt”
Fd.filterIndex=2 ‘过滤器指定默认文件类型“文本文件”
‘Fd.show ‘显示文件框
If fd.show=-1 Then
For i=1 To fd.SelectedItems.Count
MsgBox fd.SelectedItems(i) ‘从第1个遍历到最后一个文件名
Next i
End If
End Sub
例3 文件对话框的各种类型,直接打开文件
Sub fileDialogdemo3()
Dim fd as FileDialog
Set fd=application.FileDialog(msoFileDialogOpen)
Fd.title=”打开报表文件” ‘打开对话框标题
Fd.AllowMultiSelect=Ture ‘ 可以多项选择为True,默认为False
Fd.initialfilename=”d:\vbademeo\” ‘打开指定文件夹(直接定位)
Fd.filters.Clear ‘先清理掉默认过滤器内容,用户指定过滤器
Fd.filters.Add ”execl文件”,”*.xlsx;*.xlsm”
Fd.filters.Add ”文本文件”,”*.txt”
Fd.filterIndex=2 ‘过滤器指定默认文件类型“文本文件”
‘Fd.show ‘显示文件框
If fd.show=-1 Then
Fd.Execute ‘在execl只能直接打开execl文件,却不能打开word文件,在word里同样
End If
End Sub