VBA应用技巧:检查文件夹是否已存在

2022-11-16 10:31:33 浏览数 (1)

标签:VBA,Dir函数,MkDir语句

在使用VBA操作文件时,如果不先核实要操作的文件夹是否已存在,则有可能会导致代码出错。例如,在创建文件夹时、在到指定的文件夹中获取文件时。因此,我们需要先使用代码判断是否已存在相应的文件夹。

创建文件夹时要执行的代码是使用Dir函数和MkDir函数。如果文件夹已存在,Dir函数将生成null结果。或者,生成句点“.”由于这个结果的布尔属性,因此可以捕获null(空)结果并创建一个新文件夹,而忽略句点结果,这意味着什么都不会发生。

示例代码:

Sub FolderVBA()

Dim i As Integer

Dim str As String

Dim fol As String

For i = 1 To 5

str = "C:MyFiles" & Range("A" & i) & ""

fol = Dir(str, vbDirectory)

If fol = "" Then MkDir "C:MyFiles" & Range("A" & i)

Next i

End Sub

在上面的示例中,需要检查5个文件夹。这5个文件夹的名字存储在工作表单元格区域A1:A5中。对于5个文件夹中已经存在的文件夹,代码将不起任何作用。然而,如果该文件夹不存在,则会创建一个新文件夹。

字符串生成“”或“.”是因为只有两种可能性,IF语句可以测试“”(空),然后用使用MkDir语句生成新文件夹。

注意,在str的代码中包含了反斜杠,如果不使用反斜杠,会出现各种问题。

注:学习整理自thesmallman.com,供参考。有兴趣的朋友可以到原网站下载示例工作簿,也可以到知识星球App完美Excel社群下载示例工作簿。

0 人点赞