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。
现在运行代码,我们将在立即窗口中获取所有文件名。