Избройте подробности за всички файлове в папка, използвайки VBA в Microsoft Excel

Anonim

В тази статия ще създадем макрос за събиране на подробности за всички файлове в папка.

Преди да стартираме макроса, трябва да посочим пътя на папката в текстовото поле.

При стартиране на макроса той ще върне името на файла, пътя на файла, размера на файла, датата на създаване и датата на последната промяна на всички файлове в папката.

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

В тази статия създадохме два макроса „ListFilesInFolder“ и „TestListFilesInFolder“.

Макросът „ListFilesInFolder“ ще показва подробности, свързани с всички файлове в папката.

Макросът „TestListFilesInFolder“ се използва за определяне на заглавката и извикване на макрос „ListFilesInFolder“.

Обяснение на кода

Задайте FSO = CreateObject ("Scripting.FileSystemObject")

Горният код се използва за създаване на нов обект на обект на файлова система.

Задайте SourceFolder = FSO.GetFolder (SourceFolderName)

Горният код се използва за създаване на обект от папката, посочена от пътя.

Клетки (r, 1). Формула = FileItem.Name

Клетки (r, 2). Формула = FileItem.Path

Клетки (r, 3). Формула = FileItem.Size

Клетки (r, 4). Формула = FileItem.DateCreated

Клетки (r, 5). Формула = FileItem.DateLastModified

Горният код се използва за извличане на подробности за файловете.

За всяка подпапка в SourceFolder.SubFolders

„Извикване на същата процедура за подпапки

ListFilesInFolder SubFolder.Path, True

Следваща подпапка

Горният код се използва за извличане на подробности за всички файлове в подпапки.

Колони („A: E“). Изберете

Selection.ClearContents

Горният код се използва за изтриване на съдържание от колони А до Е.

Моля, следвайте кода по -долу

 Опция Изричен Sub ListFilesInFolder (ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean) 'Деклариране на променливи Dim FSO като Object Dim SourceFolder като Object Dim SubFolder като Object Dim FileItem As Object Dim r As Long' Създаване на обект на FileSystemObject Set F .FileSystemObject ") Задайте SourceFolder = FSO.GetFolder (SourceFolderName) r = Диапазон (" A65536 "). End (xlUp) .Row + 1 За всеки FileItem в SourceFolder. Свойства на файловете за показване на файлове Клетки (r, 1). FileItem.Name Клетки (r, 2) .Formula = FileItem.Path клетки (r, 3) .Formula = FileItem.Размери на клетките (r, 4) .Formula = FileItem.DateCreated клетки (r, 5) .Formula = FileItem. DateLastModified r = r + 1 Next FileItem 'Получаване на файлове в подпапки If IncludeSubfolders Тогава за всяка подпапка в SourceFolder.SubFolders' Извикване същата процедура за подпапки ListFilesInFolder SubFolder.Path, True Next SubFolder End If Set FileItem = Nothing Set SourceFolder = Nothing set FSO = Нищо ActiveWorkbook.Saved = Вярно End Sub Sub TestListFilesInFolder () "Деклариране на променлива Dim FolderPath като низ" Деактивиране на актуализациите на екрана Application.ScreenUpdating = False "Получаване на пътя на папката от текстовото поле FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate" Изчистване на съдържанието от колони A: E Колони ("A: E"). Изберете Selection.ClearContents 'Добавяне на заглавки Range ("A14"). Formula = "Име на файла:" Range ("B14"). Formula = "Path:" Range ("C14"). Formula = "Размер на файла:" Диапазон ("D14"). Формула = "Дата на създаване:" Обхват ("E14"). Формула = "Дата на последната промяна:" 'Форматиране на обхвата на заглавките ("A14: E14"). Шрифт .Bold = True 'Calling ListFilesInFolder макрос ListFilesInFolder FolderPath, True' Автоматично регулиране на размера на колоните Колони ("A: E"). Изберете Selection.Columns.AutoFit Range ("A1"). Изберете End Sub 

Ако този блог ви е харесал, споделете го с приятелите си във Facebook. Също така можете да ни следвате в Twitter и Facebook.

Ще се радваме да чуем от вас, уведомете ни как можем да подобрим работата си и да я направим по -добра за вас. Пишете ни на имейл сайта