Excel 2010 VBA 入门 120 显示打开文件对话框

目录

码1

Application.GetOpenFilename方法

码2

FileDialog对象

FileDialog对象的常用属性

使用FileDialog对象的属性Filters添加筛选

FileDialog对象的Show方法和Execute方法

遍历通过FileDialog对象选择的文件

Application.  GetSaveAsFilename方法

Application. Dialog对象

码1

    使用Application.GetOpenFilename方法显示打开文件的对话框,然后根据用户选择的文件进行相应的操作。

Option Explicit


Sub 选择文件1()
    Dim fileName As String
    fileName = Application.GetOpenFilename( _
        filefilter:="Excel 文件,xlsx,Excel 2003文件,*.xls", _
        FilterIndex:=2, _
        Title:="选择文件")
    If fileName = "false" Then
        MsgBox "取消了"
    Else
        MsgBox "选择的文件为:" & fileName
    End If
End Sub

Application.GetOpenFilename方法

    Application. GetOpenFilename方法可以显示一个打开文件的窗口,并返回用户所选择的文件路径,其语法为:     

Application.GetOpenFilename(FileFilter,Filterlndex,Title,ButtonText,MultiSelect)

    参数FileFilter为一个文本字符串,表示文件的筛选。该筛选文本用以筛选不同扩展名的文件,各个筛选类型之间以逗号隔开,按照“筛选说明,筛选通配符”的形式成对出现。如需要提供两个筛选:文本文件(Txt)和备份文件(BAK),则可以使用以下文本作为该参数:

文本文件(Txt),*.Txt,备份文件(BAK),*.BAK
  • 参数Filterlndex为一个大于0的整型数值,表示默认筛选的序号。
  • 参数Title为一个文本,表示打开文件对话框的标题。若该参数省略,则默认为“打开”。
  • 参数ButtonText为一个文本,表示对话框中按钮的显示文字。该参数只在Macintosh系统下有效。
  • 参数MultiSelect为一个逻辑值。当设置为True时,表示允许选择多个文件,反之则为只能选择一个文件。

    该方法具有返回值,可以根据用户的不同选择返回不同的值。

  • 若用户未选择任何文件或直接关闭窗口,则返回False。
  • 选择若将MultiSelect设置为False,且选择了一个文件,则返回一个文本类型的字符,表示该选中文件的完整路径。
  • 若将MultiSelect设置为True,且选择了若干个文件,则返回一个以1为下限的一位数组,其数组元素为选中的所有文件的完整路径。

    Application. GetOpenFilename方法仅能返回用户选择的文件的完整路径,而不能打开该文件。因而通常利用该方法获取用户指定的文件的完整路径,然后进行相应的操作。一般可以声明一个变量用以接受该方法的返回值。由于该方法的返回值可能为逻辑值、文本或者数组,因而可以声明一个变体型的变量。首先需要判断该变量所接受的返回值是否为False,若为False,则表示用户放弃选择,反之,可以根据参数MultiSelect的值对文本或者数组进行访 问,以获得选中的文件的完整路径。

码2

使用FileDialog对象打开文件对话框,并获取用户选择的文件。

Sub 选择文件2()
    Dim fileName As String
    With Application.FileDialog(msoFileDialogOpen)
        .Filters.Add "Excel", "*.xlsx", 1
        .Filters.Add "Excel 2003", "*.xls", 2
        .FilterIndex = 2
        .AllowMultiSelect = False
        If .Show = -1 Then
            fileName = .SelectedItems(1)
            MsgBox "选择的文件是:" & fileName
        Else
            MsgBox "取消了"
        End If
    End With
End Sub

FileDialog对象

  •     FileDialog对象是Excel程序对象(Application)下的一个子对象。使用该对象可以打开一个文件对话框供用户执行打开等操作。该对象包含四种类型:msoFileDialogOpen(打开文件对话框)、
  • msoFileDialogSaveAs(另存文件对话框)、
  • msoFileDialogFilePicker(选择文件对话框,并不执行打开操作)
  • msoFileDialogFolderPicker(文件夹选择对话框)。当

需要使用FileDialog对象对文件进行操作时,可以声明一个FileDialog类型的对象,然后将其赋值为Application. FileDialog中四种类型的一种。一旦确定了类型,则该对象不能转换为其他类型。如以下参考语句创建了一个可以选择文件夹的对话框:

Dim FD As FileDialog
Set  FD  =  Application. FileDialog(msoFileDialogFolderPicker)

FileDialog对象的常用属性

    FileDialog对象的常用属性与Application. GetOpenFilename的参数类似,设置方法也基本相同。

                             FileDialog对象的常用属性

   

    说  明

Filters

  文件筛选文本对象。与GetOpenFileName不同

FilterIndex

  文件筛选的序号

ButtonName

  按钮的显示文本

Title

  对话框的标题

AllowMultiSelect

  是否允许选择多个文件

InitialFileName

  初始的文件名称(默认的文件名称)

InitialView

  对话框的文件排列的默认视图

使用FileDialog对象的属性Filters添加筛选

    Filters属性是FileDialog对象的一个重要属性,其返回一个FileDialogFilters集合对象。可以使用其Clear方法和Delete方法删除筛选的项目,也可以使用Add方法添加筛选项目。Add方法的语法如下:

Filters.Add(Descriptions,Extensions,[Position])

参数Descriptions为文本,表不又件类型的描述。
参数Extensions为文本,表示文件类型的扩展名,可以由逗号隔开多个相同描述的扩展名,如“*.gif:*.jpg:*.jpeg。
参数Position表示添加的文件类型的项目位置,该参数从1开始。
本例需要添加两个Excel不同版本的文件类型,因而使用两句Add方法进行添加。

FileDialog对象的Show方法和Execute方法

    当设置完FileDialog对象的基本属性后,需要使用Show方法打开对话框。Show方法具有一个返回值:当用户选择文件后,返回-1;当用户未选择文件或者直接关闭对话框,则返回0。
    当用户选择某个文件后,  若FileDialog类型为msoFileDialogOpen或msoFileDialogSaveAs,则该对象的Executec方法执行打开或者保存文件的操作。

遍历通过FileDialog对象选择的文件

    当Show方法返回值为一1时,则表示用户选择了文件。此时FileDialog对象的Selectedltems属性将返回一个Selectedltems对象。该对象包含了所有选中文件的集合,可以通过For Each—Next的循环方法直接遍历Selectedltems对象,从而获取每个选中的文件的完整路径及名称。

Application.  GetSaveAsFilename方法

    与Application. GetOpenFilename方法相对应的,Excel VBA中提供了另一个方法Application. GetSaveAsFilename,该方法可以提供一个“另存为”对话框。与
GetOpenFilename方法不同的是,GetSaveAsFilename可以输入一个不存在的文件名。该方法将返回该文件的完整路径,其语法为:

Application.GetSaveAsFilename(InitialFilename,FileFilter,Filterlndex,Title,ButtonText)

    其中的参数与GetOpenFilename大致相同。其中,参数InitiaIFileName为设置默认的文件名,若省略此参数,则以当前文件作为文件名。

Application. Dialog对象

    Application. Dialog对象是Excel内置对话框的集合。利用该对象可以调用Excel的内置对话框,其语法为:

Application.Dialogs(DialogsType).Show

其中,DialogsType为内置对话框的类型。
    调用内置对话框后,相当于从菜单或者功能区打开了该对话框,期间的每个操作都将影响工作表中的数据。
 

 

    原文作者:ngbshzhn
    原文地址: https://blog.csdn.net/ngbshzhn/article/details/119676881
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞