EXCEL VBA – 创build目录和文件夹,如果它们不在那里

我在A列中定义了目录层次结构的文件夹位置列表(例如“C:\ topFolder \ nextFolder \ lastFolder \”),代码运行时没有错误,但没有创build文件夹。在这里做错了?

Sub newDestination() Dim Path As Variant Dim folderLevel As Variant For Each Path In Sheet11.Range("A:A") For Each folderLevel In Split(Path.Value, "\") folderLevel = folderLevel & "\" If Len(Dir(folderLevel, vbDirectory)) = 0 Then MkDir folderLevel End If Next folderLevel Next Path End Sub 

您正在创build孤立文件夹。 mkdir“abc \”将在WorkBook的目录中创build一个名为abc的文件夹。 如果工作簿没有保存,那么这个文件夹是在MyDocuments中创build的(最类似的,取决于Excel的configuration)。

你需要通过完全的qalifiedpath创build一个文件夹在你想要的位置,如“C:\ Temp \ abc \”

在你的代码中,问题在于你如何运行for循环并传递文件夹名称。

这是你如何做到这一点:

 Sub test() Dim strPath As String Dim lCtr As Long strPath = "C:\Temp\Parent\Child\ChildsChild" arrpath = Split(strPath, "\") strPath = arrpath(LBound(arrpath)) & "\" For lCtr = LBound(arrpath) + 1 To UBound(arrpath) strPath = strPath & arrpath(lCtr) & "\" If Dir(strPath, vbDirectory) = "" Then MkDir strPath End If Next End Sub