В настоящее время у меня есть рабочая книга, предназначенная для индексации папки, в которую вы вводите путь к папке, например. «Z: \ Example» и экспортирует все имена файлов и пути к файлам для всего, что находится в этой конкретной папке, на другой лист в книге. Мне было интересно, можно ли захватить все файлы в этой папке («Z: \ Example»), и если в этом каталоге есть другие папки, также возьмите все файлы в этой папке.Excel file directory grabber
E.g. Я ввожу «Z: \ Example» в ячейку A19 (согласно приведенному ниже коду), «Z: \ Example» имеет в нем другую папку, Z: \ Example \ Another '. Все файлы внутри как «Z: \ Пример» и Z: \ Пример \ Другой»получить принесенные в Excel лист 2.
Private Sub CommandButton1_Click()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim i As Integer
Dim Source_Workbook As Workbook
Dim Target_Path As String
'Create an instance of the FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Path of the Target Folder
Target_Path = Range("A19").Value
Set Target_Workbook = Workbooks.Open(Target_Path)
Set Source_Workbook = ThisWorkbook
'Get the folder object
Set objFolder = objFSO.GetFolder(Target_Path)
i = 1
'loops through each file in the directory and prints their names and path
For Each objFile In objFolder.Files
'print file name
Source_Workbook.Sheets(2).Cells(i + 1, 1) = objFile.Name
'print file path
Source_Workbook.Sheets(2).Cells(i + 1, 2) = objFile.Path
i = i + 1
Next objFile
'Process Completed
msgBox "Task Completed"
End Sub
Я предпочел бы не иметь, чтобы вставить все пути, которые я хочу проиндексированы в начале, но если это неизбежно, все в порядке. Любая помощь оценивается.
Благодаря
Открытие файлов ('Set Target_Workbook = Workbooks.Open (Target_Path)') бесполезно. –
Извините, укоротил этот скрипт от другого, возможно, оставил его. Спасибо! – user7433828
Я думаю, вы можете найти здесь тот же самый вопрос. Ответы принимаются методы _recursive_ – user3598756