标签: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社群下载示例工作簿。