咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

Application.FileDialog 文件对话框 操作方法。

语法:Application.FileDialog(FileDialogType) FileDialogType 是必须的,对应的类型如下:msoFileDialogFilePicker (数字简写 3) “文件选取器”对话框;msoFileDialogFolderPicker (数字简写 4) “文件夹选取器”对话框;msoFileDialogOpen (数字简写 1) “打开”对话框;msoFileDialogSaveAs (数字简写 2) “另存为”对话框。

With Application.FileDialog(msoFileDialogFilePicker) '“文件选取器”对话框 .AllowMultiSelect = False '不可以多选 .Filters.Add "Excel Files", "*.xls,*.xlsx" '文件筛选 If .Show = -1 Then '执行Show操作,并判断是否选择了文件 GOF = .SelectedItems(1) Else MsgBox "未选择文件,程序中止" Exit sub End If End With

(1) Filters.Add 方法。在“文件”对话框的“文件类型”下拉列表框的筛选器列表中添加一个新的文件筛选器。示例语句: .Filters.Clear ;.Filters.Add "Excel Files", "*.xls,*.xlsx"

(2) FileDialog.Title 属性。设置FileDialog 弹出窗口的标题。.Title= “请选择正确的文件或文件夹”

(3) FileDialog.AllowMultiSelect 属性。如果允许从文件对话框中选择多个文件,则为 True。说明:此属性对“文件夹选取器”对话框和“另存为”对话框无效。

(4) FileDialog.Show 方法:判断按下的是“打开”按钮 (点击的这个按钮,Show被赋值为 -1) 还是“取消”按钮 (0)。在“msoFileDialogOpen”和“msoFileDialogSaveAs”对话框中,在使用了 Show 方法后,使用 .Execute ,就会执行Open或SaveAs操作。

可以看出,只需要打开文件,用FileDialog(msoFileDialogOpen)比GetOpenFilename更简单、直接些。注:FileDialog要执行Show语句才会弹出窗口(这点不同于GetOpenFilename), Execute必须在Show执行后才会有效。

(5) FileDialog.InitialFileName 属性

设置为一个 String 类型的值,代表文件对话框中初始显示的路径或文件名。说明:在指定文件名时可以使用 '*' 和 '?' 通配符,但是指定路径时不能使用这些通配符。语句示例.InitialFileName = "E:temp网点日常运行情况概览*.xls" 弹出的对话框中将只显示“网点日常运行情况概览*”的文件,文件夹定位在E:temp。

如果指定了路径而没有指定文件名,则对话框中将显示文件筛选器所允许的所有文件。如果指定了位于初始文件夹中的某个文件,则对话框中只显示该文件。如果指定了初始文件夹中不存在的某个文件名,则对话框中将不包含文件。在 InitialFileName 属性中指定的文件类型将覆盖文件筛选器的设置。

通过InitialFileName 属性,可以控制“弹出对话框”所显示的文件夹,不用到处找需要选取的文件所在的文件夹。

下面为“多选文件”的示例语句:

Sub filedia() With Application.FileDialog(msoFileDialogOpen) .Title = "请选择文件" .AllowMultiSelect = True .InitialFileName = "E:temp" .Filters.Add "Excel Files", "*.xls,*.xlsx" If .Show = True Then Set GOF = .SelectedItems Else: Exit Sub End If End With

.SelectedItems 是个类似“字典”结构的对象,赋值给GOF(要用Set),然后再取出文件名称。(多选的情况下,Show之后执行Execute,会同时将选择的文件都打开。Execute不像SelectedItems,有SelectedItems(1),它不能写成Execute(1)。

下为Application.FileDialog 选取一个文件夹的语句:

With Application.FileDialog(msoFileDialogFolderPicker) .Title = "请选择一个文件夹" .InitialFileName = "E:" If .Show = -1 Then Fd = .SelectedItems(1) Else: Exit Sub End If End With

附:FileLen(fn) fn为一个文件全路径+名称,FileLen函数得到文件大小,以“字节”为单位

FileDateTime(fn) ,FileDateTime函数得到“文件最后修改的时间”