撞狗逃离也算逃逸:Application.GetOpenFilename 方法解析 - e文精选 - Excel 技巧网 | Excel 2010 新领地 | excel教程 | excel课程 | excel培训 | excel下载 | excel提升 - Powered by Discuz!

来源:百度文库 编辑:偶看新闻 时间:2024/04/26 02:14:18
[Excel VBA] Application.GetOpenFilename 方法解析
GetOpenFilename
网站名称: Excel技巧网|Excel 2010新领地
署名作者: gvntw
版权声明: 版权所有 非作者本人转载须经许可并注明作者和出处
本文来自:
引用作品:
适用版本: 2010 2007 2003以前版本
语言环境: 简体中文
内容简介:
文章地址:http://www.exceltip.net/thread-12485-1-1-0.html
学习方法: 掌握Excel技巧的关键是动手操作|下载≠知识
以下是笔者对 Excel VBA之 Application.GetOpenFilename 方法的理解,希望对初学者有所裨益:
功能:显示标准的“打开”对话框,并获取用户文件名,而不必真正打开任何文件。
语法:Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
参数及说明如下表所示:
名称 说明
FileFilter 可选参数,代表指定文件筛选条件的字符串。如果省略该参数,默认为:“所有文件(*.*),*.*”。
FilterIndex 可选参数,指定默认文件筛选条件的索引号,取值范围为  1 到由 FileFilter 所指定的筛选条件数目。如果省略该参数,或者该参数的值大于可用筛选条件数,则使用第一个文件筛选条件。
Title 可选参数,指定对话框的标题。如果省略该参数,则标题为“打开”。
ButtonText 可选参数,仅用于  Macintosh 机器。
MultiSelect 可选参数,如果为  True,则允许选择多个文件名。如果为 False,则只允许选择一个文件名。默认值为 False。
说明:
FileFilter 参数确定出现在“文件类型”下拉列表中的选项,由文件筛选字符串和通配符表示的文件筛选规则组成,每一部分和每一对都用半角逗号隔开。
如果省略 FileFilter,则此参数默认为“所有文件 (*.*),*.*”,这个字符串的前半部分“所有文件 (*.*)”将显示在“文件类型”下拉列表框中,后半部分“*.*”确定要显示哪些文件。
本方法返回选定的文件名或用户输入的名称。返回的名称可能包含路径说明。如果 MultiSelect 为 True,则可配合Ctrl或Shift键选择多个文件,返回值将是一个包含所有选定文件名的数组(即使仅选定了一个文件名)。如果用户取消了对话框,则该值为 False。
示例代码1:
Sub SelectAFile()    'MultiSelect省略默认为false,选择单个文件
Dim filter As String
Dim fileToOpen
filter = "All Files(*.*),*.*,Word Documents(*.do*),*.do*," & _
"Text Files(*.txt),*.txt,Excel Files(*.xl*), * .xl * "
fileToOpen = Application.GetOpenFilename(filter, 4, "请选择文件")
If fileToOpen = False Then
MsgBox "你没有选择文件", vbOKOnly, "提示"
Else
MsgBox "你选择的文件是:" & fileToOpen, vbOKOnly, "提示"
End If
End Sub
上面的代码将显示标题为“请选择文件”的对话框,只能选择一个文件,“文件类型”下拉列表框有4个选项,打开时默认为第4个(Excel Files(*.xl*)),如下图所示:

Sub SelectFiles()      'MultiSelect为true,可选择多个文件
Dim filter As String
Dim fileToOpen
filter = "All Files(*.*),*.*,Word Documents(*.do*),*.do*," & _
"Text Files(*.txt),*.txt,Excel Files(*.xl*), * .xl * "
fileToOpen = Application.GetOpenFilename(filefilter:=filter, FilterIndex:=2, Title:="请选择文件", MultiSelect:=True)
If Not IsArray(fileToOpen) Then
MsgBox "你没有选择文件", vbOKOnly, "提示"
Else
MsgBox "你选择的文件是:" & vbCrLf & Join(fileToOpen, vbCrLf)
End If
End Sub
上面的代码将显示标题为“请选择文件”的对话框,可以选择多个文件,“文件类型”下拉列表框有4个选项,打开时默认为第2个(Word Documents(*.do*)),如下图所示: