Первое сообщение здесь, в Stackoverflow, дайте мне знать, если что-то не так.
Я работал над сценарием VBA, который возвращает список всех файлов в папке и ее подпапках. (в виде строки)
Однако он возвращает только файлы основной папки и первой подпапки. Это действительно странно, потому что я отчетливо вижу, как он проходит по всем папкам, но почему-то он не возвращает переменную 'getfiles' для других папок.
Sub test()
MsgBox getfiles("L:\", True)
End Sub
Функция:
Function getfiles(startFolder As String, doSubfolders As Boolean) As String
Dim fso As New FileSystemObject
Dim f As Folder, sf As Folder
Set f = fso.GetFolder(startFolder)
'loop through files
For Each File In f.Files
getfiles = getfiles & File.path & "|"
Next
'loop through subfolders
If doSubfolders = True Then
For Each sf In f.SubFolders
getfiles = getfiles & getfiles(sf.path, doSubfolders)
Next
End If
End Function
Редактировать: Решено. Вывод был отключен, вероятно, из-за предельного значения msgbox. Скрипт просто работает.