Я пытаюсь выяснить, как вернуть строковый массив в функцию, которая сама вызывает.Это функция, которая просматривает все папки и подпапки в определенном пути, чтобы сформировать список текстовых файлов и их местоположение.Прямо сейчас подпрограмма All_Folder
.Ранее я пытался сделать All_Folder
функцией и пытаться вернуть значение из функции, но это ни к чему не привело.Теперь это мой код:
Public file_locations() As String
Sub Some_Subroutine()
Dim pathway As String: pathway = "C:\Users"
Dim FileSystem As Object
Set FileSystem = CreateObject("Scripting.FileSystemObject")
All_Folder FileSystem.GetFolder(pathway)
...
End Sub
Public Sub All_Folder(Folder)
Dim filetype as string: filetype = "*.txt"
Dim Counter As Integer: Counter = 0
Dim SubFolder: Dim File
For Each SubFolder in Folder.SubFolders
All_Folder SubFolder
Next
For Each File in Folder.Files
If Dir(Folder & "\" & filetype) <> "" Then
ReDim Preserve file_locations(Counter)
file_locations(Counter) = CallByName(File, Path, VbGet)
Counter = Counter + 1
End If
Next
End Sub
Моя проблема в том, что каждый раз, когда эта функция запускается, вывод в file_locations
всегда перезаписывается тем, что находится в следующем вызываемом каталоге.
У меня есть список к концу подпрограммы All_Folder
, мне просто нужно иметь возможность сохранить / добавить его в текущий список file_locations
.