目录:
- GetOpenFilename方法的官方语法如下:
- fileFilter参数确定出现在对话框的“文件类型”下拉列表中的内容。这个参数由一对文件过滤器字符串组成,后跟通配符文件过滤器规范,用逗号分隔每个部分和一对。如果省略,则此参数默认为以下内容:
视频: 04_如何儲存VBA程式檔案(EXCEL VBA自動化 吳老師) 2024
如果您的VBA过程需要向用户请求文件名,您可以 使用InputBox函数并让Excel用户进行一些输入。一个输入框通常不是这项工作的最佳工具,但是,因为大多数用户发现难以记住路径,反斜杠,文件名和文件扩展名。换句话说,当输入文件名时,这太容易搞砸了。 为了更好地解决这个问题,可以使用Application对象的GetOpenFilename方法,它可以确保你的代码获得一个有效的文件名,包括它的完整路径。 GetOpenFilename方法显示熟悉的“打开”对话框(当您选择“文件”→“打开”→“浏览”时,Excel显示的对话框的死信号)。
<! - 1 - >
GetOpenFilename方法实际上并不打开指定的文件。这个方法只是将用户选择的文件名作为字符串返回。然后你可以编写代码来做任何你想要的文件名。GetOpenFilename方法的语法
GetOpenFilename方法的官方语法如下:
对象。 GetOpenFilename([fileFilter],[filterIndex],[title],[buttonText],[multiSelect])
GetOpenFilename方法采用下面的可选参数。
<!
参数FileFilter | |
---|---|
确定出现在对话框 | 中的文件类型(例如*.TXT)。您可以为用户
指定多个过滤器以供选择。 FilterIndex |
确定通过 | 默认对话框显示哪个文件过滤器。
标题 |
指定对话框的标题 | 栏的标题。
ButtonText |
忽略(仅用于Macintosh版本的Excel)。 | MultiSelect |
如果为True,用户可以选择多个文件。 |
|
fileFilter参数确定出现在对话框的“文件类型”下拉列表中的内容。这个参数由一对文件过滤器字符串组成,后跟通配符文件过滤器规范,用逗号分隔每个部分和一对。如果省略,则此参数默认为以下内容:
所有文件(*。*),*。 *
请注意,该字符串由两部分组成,用逗号分隔:
所有文件(*。*)
和
*。 *
该字符串的第一部分是“文件类型”下拉列表中显示的文本。第二部分确定对话框显示哪些文件。例如, *。 *表示
所有文件。 以下示例中的代码打开一个对话框,要求用户输入文件名。该过程定义了五个文件过滤器。请注意,VBA续行序列用于设置Filter变量;这样做有助于简化这个相当复杂的论点。
Sub GetImportFileName()Dim Finfo As String Dim FilterIndex As Long Dim Title As String Dim FileName As Variant'设置文件过滤器列表FInfo =“Text Files(*.txt),*。 txt,“&_”Lotus文件(*.prn),*。 prn,“&_”逗号分隔文件(*.csv),*。 csv,“&_”ASCII文件(*。asc),*。 asc,“&_”所有文件(*。*),*。 *“'显示*。 *默认FilterIndex = 5'设置对话框标题Title =“选择要导入的文件”'获取文件名FileName = Application。 GetOpenFilename(FInfo,_ FilterIndex,Title)'从对话框中处理返回信息If FileName = False Then MsgBox“No file was selected。 “Else MsgBox”您选择了“&FileName End If End Sub
以下是执行此过程时Excel显示的对话框。外观可能会有所不同,具体取决于您使用的Windows版本和您设置的显示选项。
GetOpen Filename方法显示一个可定制的对话框,并返回选定文件的路径和名称。它不打开文件。
在一个真实的应用程序中,您将使用文件名来做更有意义的事情。例如,您可能想要使用如下所示的语句打开它:Workbooks。打开FileName
请注意,FileName变量被声明为Variant数据类型。如果用户单击取消,该变量包含一个布尔值(False)。否则,FileName是一个字符串。因此,使用Variant数据类型可以处理两种可能性。