如何用vba打开选择文件和选择文件夹对话框?





在编写vba代码的解决方案时,为了使解决方案更加的具有人机交互性,经常会提供各种对话框让用户进行选择。

其中选择文件或者选择文件夹对话框是最经常用到的,本文介绍几种在vba中打开选择文件和选择文件夹对话框的方法。

方法一:使用vba内置的FileDialog对象用于操作打开文件和选择文件夹对话框

vba中为我们内置了一个FileDialog对象用于操作打开文件和选择文件夹对话框。实际上,根据不同的MsoFileDialogType类型,它可以提供4种不同的对话框,具体如下:

MsoFileDialogType常量 用途
msoFileDialogFilePicker 允许用户选择一个或多个文件
msoFileDialogFolderPicker 允许用户选择文件夹路径
msoFileDialogOpen 允许用户打开一个或多个文件
msoFileDialogSaveAs 允许用户保存文件

每次都要用FileDialog对象的Show方法来打开对话框,当选择了文件或者文件夹后,选择的文件名或者文件夹的路径都将存储在FileDialogSelectedItems集合中,该集合可以用FileDialog对象的SelectedItems属性获得。

以下是一段通用的打开选择文件的对话框的vba代码:

如果要改成选择文件夹的对话框只需要将
Application.FileDialog(msoFileDialogFilePicker)改成 Application.FileDialog(msoFileDialogFolderPicker)即可。

方法二:使用Shell对象的BrowseForFolder方法打开选择文件夹对话框

它的语法如下:

其中Hwnd参数为拥有对话框的窗体的句柄,sTitle参数为对话框的标题,iOptions参数为对话框的一些设置,vRootFolder参数为可选参数,一般省略。

它的返回值是一个文件夹Folder对象。

代码如下:

 

打赏
       

发表评论