ajax保存文件对话框_VBA学习笔记34-2:Excel对话框(FileDialog)

这篇笔记介绍了Excel VBA中的FileDialog对象,用于创建与Microsoft Office标准‘打开’和‘保存’对话框类似的文件对话框。重点讲述了如何使用FileDialog实现文件和文件夹的选择,包括允许多选、设置初始路径、过滤规则等,并通过实例展示了选择文件和文件夹的操作过程。
摘要由CSDN通过智能技术生成

da897eccfac10b6694dce2c32fe70ecc.png

学习资源:《Excel VBA从入门到进阶》第34集 by兰色幻想

这篇笔记写对话框的FileDialog对象。开始前先把上篇漏写的改变窗口默认路径补一下。

chdrive 盘符 可以改变默认驱动器
chdir 路径 可以改变默认路径

这两个默认路径的设置都是长期的,直到重新设置才会变更过来。代码位置如下例:

Sub t6()
Dim f

ChDrive "E"               '改变默认驱动器为E盘
'ChDir ThisWorkbook.Path  '改变默认路径为当前路径(就不另写例子了)
f = Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc,文本文件,*.txt", 1, MultiSelect:=True)
MsgBox f(1)
 
End Sub

5d2a21ba41104a187699c53cc2f395f6.png
运行结果显示

一、FileDialog对象简介

上篇写的GetOpenFilename和GetSaveFilename都只能把选择的文件路径返回到程序,但不能真正打开文件,也不能选择文件夹。

所以我们需要学习另一个对象——FileDialog对象。它提供文件对话框,功能与 Microsoft Office 应用程序中标准的“打开”和“保存”对话框类似。利用这些对话框,解决方案的用户可以简便地指定解决方案中应该使用的文件和文件夹。

①“打开”对话框:让用户选择一个或多个可以在主机应用程序中使用 Execute 方法打开的文件。

②“另存为”对话框:让用户选择一个可以使用 Execute 方法保存当前文件的文件。

③“文件选取器”对话框:让用户选择一个或多个文件。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。

④“文件夹选取器”对话框:让用户选择一个路径。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。

二、FileDialog语法和属性

FileDialog语法:

Application.FileDialog(FileDialogType)

eee7eb82be2f4c3eb746bc42347e7e14.png
FileDialogType类型

FileDialog属性:

  1. AllowMultiSelect :允许用户从文件对话框中选择多个文件,填写 True。
  2. Filters.Add 规则名称, 过滤文件类型, 规则起始位置(初始为1) :添加过滤规则
  3. SelectedItems :选取的多个文件集合
  4. InitialFileName :设置初始路径和文件名称
  5. InitialView :可以设置初始文件的显示样式(文件查看类型)
  6. Title :对话框标题
  7. show :可以判断用户是否点击了取消按钮,如果点击取消会返回0,否则返回-1
  8. ilters.Clear :清除当前的过滤规则
  9. ButtonName :选择按键名称

29abf35dba562ecdf55499c0caa92539.png
InitialView的属性是文件查看类型,就是我们平时在文件夹里右击打开设置的“查看”,不用特意记,当打出“InitialView=”后会出现下拉框可以选择属性

属性还有很多,这里只列了一些常用的属性,需要用的时候可以再去深入了解。

※ 下面讲一下例子:

例1:选择并返回一组文件名和路径。

Sub f1()

Dim f
Dim dig As Object

Set dig = Application.FileDialog(msoFileDialogOpen)

With Application.FileDialog(msoFileDialogOpen)
    .AllowMultiSelect = True                  '允许选择多个文件
    .Filters.Add "Excel文件", "*.xls", 1       '过滤规则为把后缀为.xls的Excel文件筛选出来  
    .InitialFileName = ThisWorkbook.FullName   '初始路径和文件名称为当前文件名及其路径
    .InitialView = msoFileDialogViewDetails    '初始文件的显示样式:详细信息
    .Title = "对话框测试"                       '对话框标题:对话框测试
    .Show
    
    '把文件名和路径放在selecteditem属性里,通过序号或者循环一一读取
    For Each f In .SelectedItems 
        MsgBox f
    Next f

End With

Set dig = Nothing

End Sub

运行效果:

90fcdc8d452fe1967770676ed47d6800.png

例2:选择并返回文件夹

Sub F2()

Dim dig As Object

Set dig = Application.FileDialog(msoFileDialogFolderPicker)

With dig
    .InitialFileName = "d:"   '设置初始路径为D盘
    .Show
    MsgBox .SelectedItems(1)
End With

Set dig = Nothing

End Sub

运行结果:

1ac8d805d091d13561f98bc1742bfea7.png

三、小结

个人认为,FileDialog对象的功能更加实用,但如果只是想获取文件夹路径的话,可以选择GetOpenFilename 和 GetSaveFilename ,看情况使用吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值