打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA调用内置对话框—FileDialog | VBA实例教程

上节我们讲到调用内置对话框的GetOpenFilename方法,但是该方法只能简单的返回选择的文件路径,不能返回文件夹,也不能对文件执行操作,这节我们再来看一个调用内置对话框的方法——FileDialog对象。

FileDialog对象有4个参数,如下

'msoFileDialogFilePicker 允许用户选择文件
'msoFileDialogFolderPicker 允许用户选择文件夹
'msoFileDialogOpen 允许用户打开一个文件
'msoFileDialogSaveAs 允许用户保存一个文件

分别是允许选择文件、允许选择文件夹、允许用户打开文件、允许用户将文件另存为,下面我们分别来看这4个参数的用法。

先来看第一种,选择文件并返回文件名

Sub test1() '选择文件
Dim dig
Set dig = Application.FileDialog(msoFileDialogFilePicker)  '定义对象,指定参数
With dig
.AllowMultiSelect = True                    '允许多选
.Filters.Add 'Excel文件', '*.xls*', 1 '默认文件类型
.InitialFileName = ThisWorkbook.FullName ''d:\'    '默认路径
.InitialView = msoFileDialogViewDetails       '文件显示方式
.Title = '对话框测试'                 '对话框标题
If .Show = 0 Then                    'show显示对话框,判断返回值
MsgBox '你点了取消'
Else
MsgBox dig.SelectedItems(1)      '取得选择的文件名
End If
End With
End Sub

各个属性我就不说了,这里显示对话框用到的是show方法,而show方法是可以返回值的,返回0代表点了取消,否则返回-1。选择的文件名称是保存在SelectedItems数组中,通过该数组来调用相应的文件名,选了一个可以单独调用,多个就循环调用。

下面再来看怎样选取并返回一个文件夹路径,看代码

Sub test2() '选择文件夹
Dim dig
Set dig = Application.FileDialog(msoFileDialogFolderPicker)   '选择文件夹
With dig
.AllowMultiSelect = True
.InitialFileName = 'D:\'
.Title = '对话框测试'
If .Show = 0 Then
MsgBox '你点了取消'
Else
MsgBox dig.SelectedItems(1)
End If
End With
End Sub

和第一个基本上一样,只不过将参数变为了msoFileDialogFolderPicker,不再多说。

再来看怎样打开选中的文件,看代码

Sub test3() '打开文件
Dim dig
Set dig = Application.FileDialog(msoFileDialogOpen)
With dig
.AllowMultiSelect = True
.Filters.Add 'Excel文件', '*.xls*', 1
.InitialFileName = 'D:\'
.Title = '对话框测试'
If .Show = 0 Then             '判断是否点了取消
MsgBox '你点了取消'
Else
.Execute                   '执行打开命令
MsgBox '文件已打开'
End If
End With
End Sub

执行打开命令需要在Show方法之后调用Execute方法,而之前的两个代码是没有Execute方法的,如果在Show之后不执行Execute那这个代码也可以用来返回文件名,和前两个代码没有区别。

下面来看怎样将文件另存为,看代码

Sub test4() '另存文件
Dim dig
Set dig = Application.FileDialog(msoFileDialogSaveAs)
With dig
.AllowMultiSelect = True
.InitialFileName = ThisWorkbook.FullName
.Title = '对话框测试'
If .Show = 0 Then             '判断是否点了取消
MsgBox '你点了取消'
Else
.Execute                   '执行打开命令
MsgBox '文件已保存'
End If
End With
End Sub

和前面打开文件一样,也是在Show之后执行Execute,不再多说。

本节示例文件下载地址:http://pan.baidu.com/s/1dDIjO7f



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA 打开选择文件和目标文件夹对话框
VBA之文件筛选
Excel VBA之FSO-2.3文件夹的移动
利用VBA实现批量打印的思路
word VBA 打开对话框,选择多个文档,并处理
【烟花原创】VBA零基础之第164篇各种对话框之文件件另存为对话框
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服