VBA自动创建多级目录

作者:仇朝权 时间:24-05-20 阅读数:6711人阅读

VBA本身的mkdir是不能直接创建多级目录的,必须一级一级的创建目录。

比如:D:\test\test1如果test目录不存在,直接 mkdir "D:\test\test2" 将会出错。

下面是一个循环判断自动创建多级目录的代码:

Function MKDirs(Str As String) As Boolean
Rem mkdir的升级版本,根据目录地址创建文件夹
Rem 使用方法Call MKDirs("D:\test\test2\test3\")
Rem if MKDirs("D:\test\test2\test3\")=True then doSomething  else doOtherSomething
    On Error Resume Next
    Dim arr, i%, newStr$
    If Len(Str) = 0 Then Exit Function
    If InStr(1, Str, "\") > 0 Then
        arr = Split(Str, "\")
        For i = 0 To UBound(arr)
            If Len(arr(i)) > 0 Then
                    newStr = newStr & arr(i) & "\"
                If Dir(newStr, vbDirectory) = "" Then
                    MkDir newStr
                    If Err.number <> 0 Then GoTo ele
                End If
            End If
        Next i
    Else
        If Dir(Str, vbDirectory) = "" Then
            MkDir Str
            If Err.number <> 0 Then GoTo ele
        End If
    End If
    MKDirs = True   '创建多级目录成功
    Exit Function
ele:
    MKDirs = False  '创建多级目录失败
    'MsgBox Err.number & Err.Description
End Function


[本文转自仇朝权随笔_VBA自动创建多级目录](http://zawen.net/post/83.html)

分享到:

♡♡♡转载请保留上面信息♡♡♡