使用VBA从Excel列表中的所有子目录文件夹中创build相同的多个文件夹
我目前正在试图build立一个目录,并试图从Excel电子表格中创build一个目录。
- 工作表的
Column A
列出了所需的文件夹名称。 -
这是我想要最终目录的样子。
- VIC \ Branch 1 \ Folder A
- VIC \ Branch 1 \ Folder B
- VIC \ Branch 2 \ Folder A
- VIC \ Branch 2 \ Folder B等
我已经能够创build状态和分支级别的文件夹,但坚持在每个分支文件夹中创build相同的五个文件夹。 如果任何人都可以帮助VB代码创build这些文件夹,将不胜感激。
下面是我用来创build每个状态目录的分支文件夹的代码。 我为每个状态列表运行它,只是改变了目录位置
谢谢
Sub MakeFolders() Dim xdir As String Dim fso Dim lstrow As Long Dim i As Long Set fso = CreateObject("Scripting.FileSystemObject") lstrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row Application.ScreenUpdating = False For i = 1 To lstrow xdir = "C:\Users\Nikki\Shared\VIC\" & Range("A" & i).Value If Not fso.FolderExists(xdir) Then fso.CreateFolder (xdir) End If Next Application.ScreenUpdating = True End Sub
为子文件夹使用一个数组,并循环遍历每个第一级文件夹。
改变这一行
vSubfolders = Array("A", "B", "C")
添加/删除您的二级文件夹
Sub MakeFolders() Dim xdir As String Dim fso As Object Dim lstrow As Long Dim i As Long Dim vSubfolders Dim vSubFolder vSubfolders = Array("A", "B", "C") Set fso = CreateObject("Scripting.FileSystemObject") lstrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row Application.ScreenUpdating = False For i = 1 To lstrow xdir = "C:\Users\Nikki\Shared\VIC\" & Range("A" & i).Value If Not fso.FolderExists(xdir) Then fso.CreateFolder (xdir) End If For Each vSubFolder In vSubfolders If Not fso.FolderExists(xdir & "\" & vSubFolder) Then fso.CreateFolder (xdir & "\" & vSubFolder) End If Next Next Application.ScreenUpdating = True End Sub