VBA FileDialog |如何使用VBA代码打开“文件”对话框?

Excel VBA FileDialog

在VBA中,fieldialog是用于表示不同实例的属性,在filedialog中,有四种不同类型的常量,称为msofiledialogfilepicker,用于从给定路径中选择文件,第二个是msofiledialogfolderpicker,其名称建议用于选择一个文件夹,第三个是打开的msofiledialog以打开文件,最后一个是msofiledialogsaveas,用于将文件另存为新文件。

在某些情况下,我们需要来自任何其他文件或任何其他工作表中的数据,并且由于使用VBA来使我们的工作自动化,因此我们可以使用VBA打开其他文件,这可以通过使用Filedialog来完成,这是使用此工具的一个很酷的部分。方法是我们不需要提供代码的路径,而是要求用户浏览文件。

作为VBA项目的一部分,我们可能需要打开其他工作簿并与它们一起执行某种任务。在我们较早的文章“ VBA Workbook.Open”中,我们展示了如何打开具有指定路径和特定文件的文件。在那里,我们需要提供文件夹路径和文件名及其扩展名。但是,如果用户每次必须从不同的文件夹中选择不同的文件,该怎么办?这是“ FileDialog”选项进入图片的地方。

VBA FileDialog选项如何工作?

“如果您不知道确切的路径,FileDialog会找到并选择您的文件”。无需提及路径地址和文件名,我们可以单独显示一个文件打开对话框窗口,以从计算机的任何文件夹中选择文件。

您可以在此处下载此VBA FileDialog Excel模板– VBA FileDialog Excel模板

“文件对话框” 是VBA中的对象。要首先使用此选项,我们需要将变量定义为FileDialog。

一旦变量被声明为“ FileDialog”,它就是一个对象变量。要开始使用它,我们需要使用Application.FileDialog设置对象。

如上图所示,FileDialog具有四个选项。

  • msoFileDialogFilePicker: 此选项将打开用户面前的文件选择器窗口,以根据他们的意愿选择所需的文件。
  • msoFileDialogFolderPicker: 此选项打开用户前面的对话框或窗口以选择文件夹。
  • msoFileDialogOpen: 这将允许用户从文件夹中打开选定的文件。
  • msoFileDialogSaveAs: 这将允许用户将文件另存为其他副本。

截至目前,我已经选择了 msoFileDialogFilePicker。

现在,我们需要设计一个出现在我们面前的对话框。

使用With Statement,我们可以设计对话框。

在with语句的内部加一个点,以查看FileDialog选项的属性和方法的IntelliSense列表。

要在打开文件对话框时仅查看excel文件,我们需要首先删除所有应用的过滤器。

现在,我们需要将一个新的过滤器应用为“ Excel文件”,并带有excel文件的通配符扩展名。

现在,让我们更改文件对话框的标题。

我们可以允许用户一次只选择一个文件,也可以允许他们也选择多个文件。为此,我们需要使用“允许多选”。

我们在这里有两个选择。如果选择TRUE,则允许用户选择多个文件;如果为FALSE,则用户一次只能选择一个文件。

我们可以使用FileDialog设计的另一件事是,当文件对话框出现时,我们实际上可以坚持默认文件夹。为此,请使用初始文件名。

为此,我们需要提及要打开的默认文件夹的地址路径。

现在,最后我们需要应用“显示”方法来查看文件对话框。

代码:

 Sub DoEvents_Example1()将Myfile设置为FileDialog设置Myfile = Application.FileDialog(msoFileDialogFilePicker)与Myfile .Filters.Clear .Filters.Add“ Excel Files”,“ * .xlsx?”,1 .Title =“选择您的Excel文件! !!” .AllowMultiSelect = False .InitialFileName =“ D:\ Excel文件”。显示结尾为结尾子 

现在运行VBA代码以查看结果。

正如我们在上面的图像文件对话框中看到的那样,默认情况下已打开提到的文件夹。

现在,我们可以选择任何子文件夹并选择excel文件。

请看上图,因为我们仅将filter参数应用为“ Excel Files”。

这只会从提到的文件夹中选择文件。为了存储完整路径,我们需要将一个变量声明为一个字符串。

现在在with语句中选择“ SelectedItems”。将所选项目的文件夹路径分配给新定义的变量。

现在,最后在VBA消息框中显示选定的文件夹路径。

现在,我将运行程序以查看对话框。

现在,我已将“文件名”选择为“ 1。子文件夹“图表”中的“ Charts.xlsx”。如果单击“确定”,我们将在消息框中看到完整的文件夹路径。

因此,像这样,我们可以使用FileDialog选项从Excel中的文件夹中选择文件。使用下面的代码选择文件。

代码:

 Sub DoEvents_Example1()将Myfile设置为FileDialog设置Myfile = Application.FileDialog(msoFileDialogFilePicker)将MyFile地址设置为具有Myfile的字符串.Filters.Clear .Filters.Add“ Excel Files”,“ * .xlsx?”,1 .Title =“选择您的Excel文件!!!” .AllowMultiSelect = False .InitialFileName =“ D:\ Excel文件” .Show FileAddress = .SelectedItems(1)以MsgBox FileAddress结尾的子项结尾