FileDialog对象
'一 FileDialog 对象简介
'提供文件对话框,功能与 Microsoft Office 应用程序中标准的“打开”和“保存”对话框类似。
'利用这些对话框,解决方案的用户可以简便地指定解决方案中应该使用的文件和文件夹。
'
'“打开”对话框:让用户选择一个或多个可以在主机应用程序中使用 Execute 方法打开的文件。
'“另存为”对话框:让用户选择一个可以使用 Execute 方法保存当前文件的文件。
'“文件选取器”对话框:让用户选择一个或多个文件。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。
'“文件夹选取器”对话框:让用户选择一个路径。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。
'二 属性和方法
'1 AllowMultiSelect 如果允许用户从文件对话框中选择多个文件,则返回 True。Boolean 类型,可读写
'2 SelectedItems 选取的多个文件集合
'3 InitialFileName 属性:设置初始路径和文件名称
'4 InitialView 属性 :可以设置初始文件的显示样多
'5 show 可以判断用户是否点击了取消按钮,如果点击取消会返回0,否则返回-1
'选择并返回一组文件名和路径
Sub f1()
Dim f
Dim dig As Object
Set dig = Application.FileDialog(msoFileDialogOpen)
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.Filters.Add "Excel文件", "*.xls", 1
.InitialFileName = ThisWorkbook.FullName '"d:\"
.InitialView = msoFileDialogViewDetails
.Title = "对话框测试"
.Show
MsgBox .Show
For Each f In .SelectedItems
MsgBox f
Next f
End With
Set dig = Nothing
End Sub
------------------------------------------
'选择并返回文件夹
Sub F2()
Dim dig As Object
Set dig = Application.FileDialog(msoFileDialogFolderPicker)
With dig
.InitialFileName = "d:\"
.Show
MsgBox .SelectedItems(1)
End With
Set dig = Nothing
End Sub
---------------------------------------------
Sub t10()
Dim f
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.Filters = "Excel表格,*.xls"
.InitialFileName = "测试.xls"
.FilterIndex = 1
.Title = "测试"
End With
End Sub
GetOpenFilename
' 一、 概述基本语法
'GetOpenFilename相当于Excel打开窗口,通过该窗口选择要打开的文件,并可以返回选择的文件完整路径和文件名。
'注:此方法并不会真正打开文件?
'Application.GetOpenFilename(文件类型筛选规则,优先显示第几个类型的文件,标题,是否允许选择多个文件名)
'二、示例
'1 打开类型只限excel文件
'设置打开某类文件可以用下面的规则:
'"文件类型说明文字,*.文件类型后辍"
Sub t1()
Dim f
f = Application.GetOpenFilename("Excel文件,*.xls")
MsgBox f
End Sub
'2、打开多种文件类型(word和excel)
'打开多种文件类型,只需要用","隔开,添加新的文件类型说明和文件类型。
Sub t2()
Dim f
f = Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc")
MsgBox f
End Sub
'3 打开多种文件类型,默认显示word文件
Sub t3()
Dim f
f = Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc,文本文件,*.txt", 2)
MsgBox f
End Sub
'4 设置对话框名称
Sub t4()
Dim f
f = Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc,文本文件,*.txt", 2, "选择要汇总的文件")
MsgBox f
End Sub
'5 选择多个文件,并以数组形式返回
Sub t5()
Dim f
ChDrive "E"
ChDir Application.Path
'ChDir ".."
f = Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc,文本文件,*.txt", 1, MultiSelect:=True)
MsgBox f(1)
End Sub
GetSaveFilename
'GetSaveAsFilename语法:
' GetSaveAsFilename(默认显示的文件名,筛选条件,多个筛选类型时显示第几个,标题)
'注:该窗口也会有实质性的保存操作.只作为返回文件名的一个途径
Sub t1()
Dim f
f = Application.GetSaveAsFilename("示例.xls", "excel表格,*.xls", , "保存示例")
MsgBox f
End Sub
改变窗口默认路径
'chdrive 盘符 可以改变默认驱动器
'chdir 路径 可以改变默认路径
Sub t6()
Dim f
ChDrive "E"
ChDir ThisWorkbook.Path
'ChDir ".."
f = Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc,文本文件,*.txt", 1, MultiSelect:=True)
' MsgBox f(1)
End Sub