В этой статье мы создадим макрос для сбора сведений обо всех файлах в папке.

Перед запуском макроса нам нужно указать путь к папке в текстовом поле.

ArrowMain

При запуске макроса он вернет имя файла, путь к файлу, размер файла, дату создания и дату последнего изменения всех файлов в папке.

ArrowOutput

Логическое объяснение

В этой статье мы создали два макроса «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]