Я нашел макрос Excel VBA, в котором перечислены все подпапки папки, но мне нужно перечислить только те подпапки, в имени которых есть определенное ключевое слово. Я действительно не знаю, с чего начать. Это то, что у меня есть до сих пор:
Sub ShowFolderList2()
Dim fs, f, f1, fc, s, Keyword As String
Dim folderspec
Keyword = "test"
folderspec = CurDir()
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
Set fc = f.SubFolders
For Each f1 In fc
s = s & f1.name
s = s & vbCrLf
Next
Debug.Print folderspec
Debug.Print s
End Sub
Мне удалось использовать Dir
для вывода списка файлов определенного расширения, где его имя содержит ключевое слово, используя следующий скрипт:
'EXTENSION TEST
If Extension = "Excel" Then
File1 = Dir(MainPath & Path1 & "*.xl??")
Debug.Print (File1)
ElseIf Extension = "PDF" Then
File1 = Dir(MainPath & Path1 & "*.PDF")
Debug.Print (File1)
ElseIf Extension = "DIR" Then
File1 = Dir(MainPath & Path1 & KeyWord1 & "*", vbDirectory)
'Find path to File1 based on KeyWord1
While (File1 <> "")
If InStr(File1, KeyWord1) > 0 Then
'Print File1 path into A column starting in cell 3
Sheet3.Cells(j + i, 1).Value = Path1 & File1
i = i + 1
End If
File1 = Dir
Wend
но я не могу составить список подпапок/каталогов. Любая помощь будет оценена.
Dir
, вы должны превратить его в Sub с path и j в качестве аргументов. Затем, когдаExtension = "DIR"
, снова вызовите Sub с путем и J (это называется рекурсивным). - person PatricK   schedule 04.08.2015