Этот код будет получить имя каждой папки внутри пути, определенного в ячейке A1 (например, C :) и поместить их в колонке B:
Sub GetChildFolders()
Dim fso, categoryFolder, subFolder As Object
Dim i As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
Set categoryFolder = fso.GetFolder(Cells(1, 1).Value)
i = 1
For Each subFolder In categoryFolder.subfolders
Cells(i, 2) = subFolder.Name
i = i + 1
Next subFolder
End Sub
Alterantively, вы можете создать новую формулу, которая возвращает разделенный запятыми списка с папками: (Чтобы создать новую формулу, добавить новый модульиз вставки меню в окне УВЫ)
Function GetChildFoldersList(ByVal path As String)
Dim fso, categoryFolder, subFolder As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set categoryFolder = fso.GetFolder(path)
For Each subFolder In categoryFolder.subfolders
GetChildFoldersList = GetChildFoldersList + subFolder.Name + ", "
Next subFolder
If GetChildFoldersList > 0 Then
GetChildFoldersList = Left(GetChildFoldersList, Len(GetChildFoldersList) - 2)
Else
GetChildFoldersList = "Folder is Empty!"
End If
End Function
Для этого вы можете использовать Dir(). –
Что произойдет, если у вас есть пропущенные папки - например. 'AAA',' BBB', 'DDD',' EEE'? –