Как получить имя папки в excel?

Я пробовал в Excel с помощью макроса, но я не смог получить точные требования.

Например: category – это имя папки. Внутри этой категории у меня есть много папок, таких как AAA BBB CCC DDD EEE

Как получить этот AAA для EEE в excel.

Этот код получит имя каждой папки внутри пути, определенного в ячейке 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 

Альтернативно, вы можете создать новую формулу, которая возвращает список, разделенный запятыми, с папками: (Чтобы создать новую формулу, добавьте новый модуль из меню вставки в окне VBA)

 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 

Это правильно обрабатывает диапазон.

Он не предполагает, что SubFolders возвращает папки в алфавитном порядке. (В документации нет упоминания об этом).

 'Add a reference to 'Microsoft Scripting Runtime' (Tools -> References...) Function ChildFolders(path As String) As String Dim fso As New Scripting.FileSystemObject Dim fldr As Scripting.Folder Set fldr = fso.GetFolder(path) Dim minFolder As String, maxFolder As String minFolder = "" maxFolder = "" Dim x As folder For Each x In fldr.SubFolders If x.Name < minFolder Or minFolder = "" Then minFolder = x.Name ElseIf x.Name > maxFolder Then maxFolder = x.Name End If Next Select Case True Case minFolder = "" And maxFolder = "" ChildFolders = "(No folders)" Case maxFolder = "" ChildFolders = minFolder Case Else ChildFolders = minFolder & " to " & maxFolder End Select End Function 
  • excelcnv предотвращает появление окна
  • Сопоставление индексов по различным листам
  • Измените цвет табуляции листов Excel с помощью рубина
  • Python win32com EXCEL return Нет
  • Кнопка для копирования вставки в Excel
  • Delphi TExcelApplication и предварительный просмотр Windows Pan
  • IF и функция для трех условий
  • импортируйте файл .sql в mysql (чтобы, наконец, импортировать в excel)
  • вставка строк и поддержание формулы во всех строках
  • Разрешение запрещается при открытии открытого файла csv, но не с открытым текстовым файлом
  • Язык сценариев, который может подсчитывать количество файлов и делать простой заговор
  • Давайте будем гением компьютера.