如何在Excel中使用VBA DIR函数(7个实际例子)

  • Share This
Hugh West

ǞǞǞ DIR 功能在 VBA 主要向你显示目录或给定文件夹中的文件。 它还可以用这个函数返回第一个文件。 这个函数有很多用途,可以获得特定的文件和文件夹。 你只需要在文件路径名中插入 VBA 你可能会发现使用 VBA DIR 别担心,在这篇文章中,我们将向你展示一些例子,以更好地可视化地使用 VBA DIR 希望你读完这篇文章后能够使用这个函数。 那么,让我们开始吧。

下载实践工作手册

下载以下练习册。 它将帮助你更好地理解这个主题。

DIR功能.xlsm

DIR功能介绍

摘要。

ǞǞǞ VBA DIR 函数返回给定文件夹路径中的文件或目录的名称。 传统上,它返回第一个文件。

语法。

Dir [ (pathname, [ attributes ] ) ]

论据解释。

争论 必备/可选 解释
路径名称 可选 路径 来访问并指定文件
属性 可选 常数或数字表达式 指定匹配文件的属性

有几个预定义的属性,它们是--

属性名称 描述
ǞǞǞ 没有特定属性的文件
vbReadOnly 没有属性的只读文件
vbHidden 没有属性的隐藏文件
淘宝网 没有属性的系统文件
vbVolume 卷标
vbDirectory 没有属性的目录或文件夹
vbAlias 指定的文件名是一个别名

在Excel中使用VBA DIR函数的7个例子

从描述中,你可能已经了解到, VBA DIR 函数从提供的路径名中提供文件名。 让我们通过例子来理解它。 这里我们创建了一个目录 优秀文件夹 这个文件夹里有不同的小文件夹和文件。

1.从路径中找到文件名

在我们的文件夹中,我们可以通过声明文件名路径找到一个特定的文件。

在复制了文件的路径后,你需要运行代码。

出于这个原因,请到 开发商 标签>> 挑选 视觉基础 然后转到 插入 标签>> 选择 模块。 一般 对话框,我们编写代码。

由于我们的议程是要找到 文件名 从路径名,我们将设置完整的路径名(从根到文件),我们的代码将是

 Sub FileNames() Dim FN As String FN = Dir("E:\Exceldemy\Sales_of_January.xlsx" ) MsgBox FN End Sub 

在我们的代码中,我们将路径名设置为 E:\ExceldemySales_of_January.xlsx

代码分解。

  • 最初,我们声明了一个字符串变量,名为 斐济 .的输出,而 理事长 函数被保存在这个变量中。
  • 接下来是 理事长 函数从提供的路径中找到文件名并返回。
  • 然后 MsgBox 设置通过消息框的输出。 MsgBox 使用一个消息框返回输出。
  • 然后,在运行代码时使用 F5 钥匙。

最后,我们找到了名为 1月销售额.xlsx .

2.检查一个目录的存在

我们可以用以下方法检查一个目录是否存在 理事长 让我们编写代码来检查 优秀 在一般框中写下以下代码,并在运行时使用 F5 钥匙。

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " exists" Else MsgBox "该文件不存在" End If End Sub 

代码分解。

  • 我们已经声明了两个变量。 PN 包含我们检查目录的完整路径名。
  • 在这里,在 理事长 函数,我们设置了两个值,路径名和属性值为 vbDirectory 这个属性值将有助于检测目录。 而这个函数的输出被存储在 文件 变量。
  • 然后我们检查该变量是否为空,如果发现该变量不是,则通过一个消息框声明该目录的存在,否则,返回不存在。

在这里, 优秀 目录存在,所以我们将找到" 存在的障碍 ",其中 优秀 是该文件夹的名称。

3.创建一个不存在的文件夹

你可以创建一个在你的电脑上不存在的文件夹。 为此,你必须创建一个在你的文件夹中不存在的路径名称。 让我们设想一下,我们要创建一个名为 阁下_1 我们将使用 MkDir 命令来创建目录,但在此之前,我们需要写下以下内容 VBA 代码。

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " File folder exists" Else MkDir PN MsgBox "A file folder has been created with name" & File End If End Sub 

在这里,我们写了一条命令,使用来自于的路径名创建目录。 其他的 我们的代码的块。 运行 的代码。 F5 钥匙。

目录已经创建,我们来看看这个目录文件夹。 阁下_1 文件夹现在在你的电脑上是可见的。

类似的阅读。

  • 如何在Excel的VBA中调用一个子程序(4个例子)
  • 在VBA函数中返回一个值(包括数组和非数组值)。
  • 在Excel中使用VBA的UCASE函数(4个例子)
  • 如何在Excel的VBA中使用TRIM函数(定义+VBA代码)?

4.从一个目录中找到第一个文件

的首要任务是 理事长 你只需要在该函数中提供路径名(直到容器目录),它将返回该目录中的第一个文件。

让我们从我们的文件中找到第一个文件 优秀 目录。 我们的代码将是

 Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "第一个文件: " & FN End Sub 

你可以看到基本的代码;我们已经把路径名传到了 理事长 功能。 现在 运行 的代码。 F5 键,你会发现这个目录中的第一个文件。

5.从一个目录中查找所有文件

在上一节中,我们看到了如何从一个目录中找到第一个文件名。 当你需要从一个特定的目录中找到所有的文件时,可能会出现这种情况。 要找到一个特定目录中的所有文件,你必须写出以下内容 VBA 代码。

 Sub AllFile() Dim FN As String Dim FL As String FN = Dir("E:\Exceldemy\") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox (" File List:" & FL) End Sub 

这里有两个变量,将文件名存储为一个( 斐济 ),以及作为一个列表( FL )。 做的同时 循环迭代到目录中没有文件时,使用这个循环,我们将每个文件名推到 FL 变量。

执行该代码,你会发现目录中的所有文件,如下图所示。

6.查找一个目录中的所有文件和文件夹

我们在上一节中提到了如何找到所有的文件。 我们也可以找到一个文件夹中的所有子文件夹。 要做到这一点,请写如下 VBA 我们在下面附上的代码。

 Sub AllFileFolders() Dim AN As String Dim Lst As String AN = Dir("E:\Exceldemy_Folder\", vbDirectory) Do While AN "" Lst = Lst & vbNewLine & AN AN = Dir() Loop MsgBox ("File Lst:" & Lst) End Sub 

我们代码中的变化只是使用了属性参数。 我们使用了 vbDirectory 在该领域。 运转 的代码,你会发现所有的文件和子文件夹。 优秀文件夹 .

7.查找特定类型的所有文件

使用 VBA Dir 让我们通过一个例子来探讨。

我们要找到 .csv 我们的代码将如下所示

 Sub SpecialTypeFiles() Dim FL As String Dim FN As String FN = Dir("E:\Exceldemy_Folder\Exceldemy\*.csv") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("List of .csv Files: " & FL) End Sub 

我们希望你已经理解了这段代码,它使用了类似的机制来寻找文件。 在路径名中,我们使用了一个通配符( )。 这个星号 (*) 表示可以出现任何数字以内的任何字符。 通配符的使用方式是,文件名可以是任何东西,但必须是一个 .csv 文件。

当你运行该代码时,它将返回 .csv 文件从我们的 优秀 目录。

练习部分

我们在每张纸的右侧提供了一个练习部分供你练习。 请你自己做。

总结

这就是今天会议的全部内容。 而这些是一些简单的例子。 VBA Dir 如果您有任何问题或建议,请在评论区告诉我们。 为了更好地理解,请下载练习表。 访问我们的网站。 优秀 感谢你耐心阅读本文,我们为你提供了一站式Excel解决方案,以了解各种不同的Excel方法。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.