Список деталей всех файлов в папке с помощью VBA в Microsoft Excel
В этой статье мы создадим макрос для сбора сведений обо всех файлах в папке.
Перед запуском макроса нам нужно указать путь к папке в текстовом поле.
При запуске макроса он вернет имя файла, путь к файлу, размер файла, дату создания и дату последнего изменения всех файлов в папке.
Логическое объяснение
В этой статье мы создали два макроса «ListFilesInFolder» и «TestListFilesInFolder».
Макрос «ListFilesInFolder» отображает подробную информацию обо всех файлах в папке.
Макрос «TestListFilesInFolder» используется для указания заголовка и вызова макроса «ListFilesInFolder».
Объяснение кода
Установите FSO = CreateObject («Scripting.FileSystemObject»)
Приведенный выше код используется для создания нового объекта объекта файловой системы.
Установите SourceFolder = FSO.GetFolder (SourceFolderName)
Приведенный выше код используется для создания объекта папки, указанной путем.
Ячейки (r, 1) .Formula = FileItem.Name Cells (r, 2) .Formula = FileItem.Path Cells (r, 3) .Formula = FileItem.Size Cells (r, 4) .Formula = FileItem.DateCreated Cells ( r, 5) .Formula = FileItem.DateLastModified Приведенный выше код используется для извлечения сведений о файлах.
Для каждой подпапки в SourceFolder.SubFolders ‘Вызов одной и той же процедуры для подпапок ListFilesInFolder SubFolder.Path, True Next SubFolder Приведенный выше код используется для извлечения сведений обо всех файлах в подпапках.
Столбцы («A: E»). Выберите Selection.ClearContents Приведенный выше код используется для удаления содержимого из столбцов A в E.
Пожалуйста, следуйте приведенному ниже коду
Option Explicit Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean) 'Declaring variables Dim FSO As Object Dim SourceFolder As Object Dim SubFolder As Object Dim FileItem As Object Dim r As Long 'Creating object of FileSystemObject Set FSO = CreateObject("Scripting.FileSystemObject") Set SourceFolder = FSO.GetFolder(SourceFolderName) r = Range("A65536").End(xlUp).Row + 1 For Each FileItem In SourceFolder.Files 'Display file properties Cells(r, 1).Formula = FileItem.Name Cells(r, 2).Formula = FileItem.Path Cells(r, 3).Formula = FileItem.Size Cells(r, 4).Formula = FileItem.DateCreated Cells(r, 5).Formula = FileItem.DateLastModified r = r + 1 Next FileItem 'Getting files in sub folders If IncludeSubfolders Then For Each SubFolder In SourceFolder.SubFolders 'Calling same procedure for sub folders ListFilesInFolder SubFolder.Path, True Next SubFolder End If Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Nothing ActiveWorkbook.Saved = True End Sub Sub TestListFilesInFolder() 'Declaring variable Dim FolderPath As String 'Disabling screen updates Application.ScreenUpdating = False 'Getting the folder path from text box FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate 'Clearing the content from columns A:E Columns("A:E").Select Selection.ClearContents 'Adding headers Range("A14").Formula = "File Name:" Range("B14").Formula = "Path:" Range("C14").Formula = "File Size:" Range("D14").Formula = "Date Created:" Range("E14").Formula = "Date Last Modified:" 'Formating of the headers Range("A14:E14").Font.Bold = True 'Calling ListFilesInFolder macro ListFilesInFolder FolderPath, True 'Auto adjusting the size of the columns Columns("A:E").Select Selection.Columns.AutoFit Range("A1").Select End Sub
Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.
Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]