VBA DIR功能|如何使用Excel VBA DIR函数?

Excel VBA DIR函数

VBA目录 函数也称为目录函数,这是VBA中的内置函数,用于为我们提供给定文件或文件夹的文件名,但我们需要提供文件的路径,此函数返回的输出为字符串,因为它返回文件名,此函数有两个参数,分别是路径名和属性。

DIR函数返回指定文件夹路径中的第一个文件名。例如,在D盘中,如果您有一个名为2019的文件夹,在该文件夹中,如果您的Excel文件名为“ 2019 Sales”,则可以使用DIR函数访问此文件。

“ VBA DIR”功能在使用其路径文件夹获取文件名时非常有用。

句法

该函数有两个可选参数。

  • [路径名称]: 顾名思义,访问文件的路径是什么。也可以是文件名,文件夹名或目录名。如果未分配任何路径,我将返回空字符串值,即“”
  • [属性]: 这也是一个可选参数,您可能不会在编码中经常使用它。您可以在 [路径名称] DIR函数仅查找那些文件。

例如: 如果只想访问隐藏文件,或者只想访问只读文件等,我们可以在此参数中指定。以下是我们可以使用的属性。

使用VBA DIR功能的示例

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

Example#1 –使用DIR功能访问文件名

我将向您解释使用DIR函数访问文件名的简单示例。请遵循以下步骤。

步骤1: 创建一个宏名称。

第2步: 将变量定义为 细绳.

代码:

 Sub Dir_Example1()Dim MyFile As String End Sub 

第三步: 现在,对于该变量,我们将使用 DIR功能.

代码:

 Sub Dir_Example1()Dim MyFile As String MyFile = Dir(End Sub 

第4步: 现在复制并粘贴 文件夹 计算机上的路径。用双引号提及路径名。

代码:

 Sub Dir_Example1()Dim MyFile As String MyFile = Dir(“ E:\ VBA Template End Sub 

步骤5: 我已经提到了文件夹的路径,现在我们还需要提及文件名及其扩展名。为此,我们需要做的第一件事是我们在路径(\)后面加一个反斜杠。

输入反斜杠后,我们需要输入 完整档案名称.

代码:

 Sub Dir_Example1()Dim MyFile As String MyFile = Dir(“ E:\ VBA Template \ VBA Dir Excel Template.xlsm”)End Sub 

步骤6: 在消息框中显示变量的值。

代码:

 Sub Dir_Example1()Dim MyFile As String MyFile = Dir(“ E:\ VBA Template \ VBA Dir Excel Template.xlsm”)MsgBox MyFile End Sub 

现在运行代码,看看消息框的结果是什么。

因此,DIR函数返回了带有文件扩展名的文件名。

Example#2 –使用DIR函数打开文件

现在我们如何打开文件?此函数可以返回文件名,但是打开该文件的过程有些不同。请按照以下步骤打开文件。

步骤1: 创建两个变量为 细绳.

代码:

 Sub Dir_Example2()Dim FolderName作为字符串Dim FileName作为字符串End Sub 

第2步: 现在 文件夹名称 变量分配文件夹路径。

代码:

 Sub Dir_Example2()Dim FolderName作为字符串Dim FileName作为字符串FolderName =“ E:\ VBA Template \” End Sub 

第三步: 现在,对于FileName变量,我们需要使用 DIR功能.

代码:

 Sub Dir_Example2()Dim FolderName作为字符串Dim FileName作为字符串FolderName =“ E:\ VBA Template \” FileName = Dir(End Sub 

第4步: 现在,对于路径名,我们已经为变量FolderPath分配了路径,因此我们可以在此处直接提供变量。

代码:

 Sub Dir_Example2()Dim FolderName作为字符串Dim FileName作为字符串FolderName =“ E:\ VBA Template \” FileName = Dir(FolderName End Sub 

步骤5: 现在我们需要提供文件名。通过使用与号符号 (&) 分配文件名。

代码:

 Sub Dir_Example2()Dim FolderName作为字符串Dim FileName作为字符串FolderName =“ E:\ VBA Template \” FileName = Dir(文件夹名称和“ VBA Dir Excel Template.xlsm”)结束 

步骤6: 现在使用 打开工作簿 方法。

代码:

 Sub Dir_Example2()Dim FolderName作为字符串Dim FileName作为字符串FolderName =“ E:\ VBA Template \” FileName = Dir(FolderName和“ VBA Dir Excel Template.xlsm”)Workbooks.Open End Sub 

步骤7: 文件名是以下各项的组合 FolderPath和FileName。因此,将两者结合起来。

代码:

 Sub Dir_Example2()Dim FolderName作为字符串Dim FileName作为字符串FolderName =“ E:\ VBA Template \” FileName = Dir(FolderName和“ VBA Dir Excel Template.xlsm”)Workbooks.Open FolderName&FileName End Sub 

现在运行此代码,它将打开提到的文件名。

Example#3 –使用DIR功能打开多个工作簿

实际上,我们可以访问该文件夹中的所有工作簿。为了访问每个文件,我们不能直接提及所有文件名,但是可以使用通配符来引用文件。

星号(*)是这些通配符之一。它可以识别任意数量的字符。例如,如果您要访问文件夹中的所有宏文件,则可以使用星号作为通配符,即 “ * .xlsm *”

此处*将匹配文件扩展名等于“ xlsm”的任何文件名。

代码:

 Sub Dir_Example3()Dim FolderName作为字符串Dim FileName As字符串FolderName =“ E:\ VBA Template \” FileName = Dir(FolderName&“ * .xlsm *”)当While FileName“” Workbooks.Open FolderName&FileName FileName = Dir( )循环结束子 

现在,上面的代码将打开文件夹路径中的所有文件。

FileName = Dir() 之所以使用此行,是因为为了访问文件夹中的下一个文件,我们必须将现有文件名设置为nil。当第二次运行循环时,我们将现有文件名设置为nil时,它将获取文件夹中的下一个文件。

Example#4 –获取文件夹中的所有文件名

假设您要获取文件夹中所有文件名的列表,我们也可以使用属性来完成此操作。

代码:

 Sub Dir_Example4()昏暗的FileName作为字符串FileName = Dir(“ E:\ VBA Template \”,vbDirectory)当While FileName“” Debug.Print FileName FileName = Dir()循环结束Sub 

通过按一下使即时窗口可见 Ctrl +G。

现在运行代码,我们将在立即窗口中获取所有文件名。