如何使用vba从excel工作表中创建例如5个文件夹?

如何使用vba从excel工作表中创建例如5个文件夹?,vba,excel,Vba,Excel,我正在使用以下vba代码创建包含excel工作表数据的文件夹结构: Option Explicit Declare Function MakePath& Lib "imagehlp.dll" Alias _ "MakeSureDirectoryPathExists" (ByVal sPath$) Sub CreatePaths() Dim i& With Tabelle1 For i = 1 To .Cells(.Rows.Count, "E").End(xlUp).R

我正在使用以下vba代码创建包含excel工作表数据的文件夹结构:

Option Explicit

Declare Function MakePath& Lib "imagehlp.dll" Alias _
   "MakeSureDirectoryPathExists" (ByVal sPath$)

Sub CreatePaths()
Dim i&
With Tabelle1
For i = 1 To .Cells(.Rows.Count, "E").End(xlUp).Row
MakePath .Cells(i, "E").Text
Next
End With
End Sub
“C:\Users\xxxxx\Desktop\test\H01\U01\UU01”

在我选择的文件夹中,每一行都被创建为一个文件夹结构,直到这里它完成了我需要的工作。列E添加列A-D并用反斜杠分隔。现在,我需要在列“E”的每个文件夹中添加4个文件夹(A、B、C、D),我尝试添加它,但它不起作用。我必须向vba代码中添加什么才能创建文件夹

请随意提问。
像这样的东西怎么样:

Option Explicit

Declare Function MakePath& Lib "imagehlp.dll" Alias _
    "MakeSureDirectoryPathExists" (ByVal sPath$)

Sub CreatePaths()

Dim i&, subfolders As Variant, subfolder As Variant
subfolders = Split("A,B,C,D", ",")

With Tabelle1
    For i = 1 To .Cells(.Rows.Count, "E").End(xlUp).Row
        For Each subfolder In subfolders
            MakePath .Cells(i, "E").Text & "\" & subfolder
        Next
    Next
End With

End Sub

试试这个,因为a列中有根文件夹。我们将其称为父目录,当我们遍历B、C、D列中的内部文件夹时,我们将分别创建名为“a、B、C、D”的单独文件夹

Option Explicit

Declare Function MakePath& Lib "imagehlp.dll" Alias _
   "MakeSureDirectoryPathExists" (ByVal sPath$)

Sub CreatePaths()

Dim i As Integer, x As Integer
Dim currentDirectory As String, parentDirectory As String
With Tabelle1
For i = 1 To .Cells(.Rows.Count, "E").End(xlUp).Row
    parentDirectory = .Cells(i, 1) & "\"
    For x = 2 To 4
        currentDirectory = parentDirectory & .Cells(i, x).Text & "\"
        MakePath currentDirectory
        MakePath currentDirectory & "A\"
        MakePath currentDirectory & "B\"
        MakePath currentDirectory & "C\"
        MakePath currentDirectory & "D\"
        parentDirectory = currentDirectory
    Next x
Next
End With
End Sub

你能给出你想要的样本输出吗?就像你想要在C:\Users\xxxx\Desktop\test中有4个单独的文件夹,所以这个特定的目录将有一个文件夹名H01,U01,UU01?这就是您需要的吗?当然,例如第一行C:\Users\xxxxx\Desktop\test\H01\U01\UU01我想将文件夹“A”、“B”、“C”、“D”添加到文件夹UU01中,并且我想将其添加到列“E”中的每个文件夹中,这样“UU01”下的每个文件夹都无法创建
“C:\Users\xxxxx\Desktop\test\H01\U01\UUU01”
,除非
“C:\Users\xxxxx\Desktop\test\H01\U01“
已存在。你需要逐级遍历路径,如果没有每个级别,请创建它。不,你理解错了,它会创建每个文件夹,直到最后一个文件夹,但我想在最后一个文件夹中添加4个文件夹。对不起,是的,我现在看到了。真不敢相信这些年来我一直在使用自己的
make\u directory()
sub!给我一个错误,每个的变量必须是一个变量或对象。不幸的是,它仍然给我与以前相同的输出。这种方法可以工作,但是,它在每个文件夹中都有ABCD,除非H01-H18。但我只需要在UU01-UU24中使用它。我已经将ABCD放在“下一个x”下,现在它可以工作了,非常感谢。