VBA代码大全015:如何用vba快速地创建多级目录文件夹?

 

在文章如何用vba创建文件夹 中介绍了两种创建文件夹的方法。

 

但是都只能创建一级路径文件夹,形如“c:\1\2,c:\asdf\asdfa\asdfasd”之类的多级路径文件夹没有办法创建。

 

什么叫多级文件夹目录呢?

 

比如我们要用VBA在D盘创建一个文件夹名字叫水星,可以用MkDir 语句,代码如下:

 

Sub 创建单个文件夹()
    MkDir "D:\水星"
End Sub

 

如果我们想要创建多个文件夹,这多个文件夹互为父子关系,也就是下一级是上一级的子文件夹。

 

比如要在D盘创建一个文件夹名字叫水星,然后在水星文件夹内再创建一个文件夹名字为VBA代码大全,然后再在VBA代码大全文件夹下创建一个文件夹名字叫文件夹专题,这就叫多级文件夹目录。

 

也就是要根据 D:\水星\VBA代码大全\文件夹专题 这样形式的路径创建多个文件夹。

 

这时候也可以用MkDir 语句,代码如下:

 

Sub 创建单个文件夹()
    MkDir "D:\水星"
    MkDir "D:\水星\VBA代码大全"
    MkDir "D:\水星\VBA代码大全\文件夹专题"
End Sub

 

很显然,上面的代码不够灵活,如果要创建5级或者更多层级的文件夹,代码就又要手动修改多次。

 

这里给出一个自定义函数,可以解决任意多级目录的快速创建,代码如下:

 

Function CreateMultiLevelFolder(ByVal sPath As String)
    'QQ:1722187970,微信:xycgenius,公众号:水星excel
    Dim arr, sPathTemp
    arr = Split(sPath, "\")
    For i = 0 To UBound(arr) - 1
        sPathTemp = arr(i) & "\" & arr(i + 1)
        If Dir(sPathTemp, vbDirectory) = "" Then
            MkDir sPathTemp
        End If
        arr(i + 1) = sPathTemp
    Next i
End Function

然后将要创建的多级目录的路径传递给该函数即可。

Sub 创建多级文件夹()
    sPath = "D:\水星\VBA代码大全\文件夹专题"
    CreateMultiLevelFolder (sPath)
End Sub

以后要创建任意的层级文件夹时,只需修改sPath参数的值即可。

       

仅有1条评论 发表评论

  1. 匿名 /

    盘符不存在的时候,应该是会报错的。

发表评论