Wyświetl szczegóły wszystkich plików w folderze za pomocą VBA w programie Microsoft Excel

Anonim

W tym artykule utworzymy makro, aby zebrać szczegółowe informacje o wszystkich plikach w folderze.

Przed uruchomieniem makra musimy określić ścieżkę folderu w polu tekstowym.

Po uruchomieniu makra zwróci nazwę pliku, ścieżkę pliku, rozmiar pliku, datę utworzenia i datę ostatniej modyfikacji wszystkich plików w folderze.

Wyjaśnienie logiczne

W tym artykule stworzyliśmy dwa makra „ListFilesInFolder” i „TestListFilesInFolder”.

Makro „ListFilesInFolder” wyświetli szczegóły dotyczące wszystkich plików w folderze.

Makro „TestListFilesInFolder” służy do określenia nagłówka i wywołania makra „ListFilesInFolder”.

Wyjaśnienie kodu

Ustaw FSO = CreateObject("Scripting.FileSystemObject")

Powyższy kod służy do tworzenia nowego obiektu obiektu systemu plików.

Ustaw folder źródłowy = FSO. GetFolder (nazwa folderu źródłowego)

Powyższy kod służy do tworzenia obiektu folderu określonego przez ścieżkę.

Cells(r, 1).Formula = FileItem.Name

Komórki(r, 2).Formula = FileItem.Path

Komórki(r, 3).Formula = FileItem.Size

Cells(r, 4).Formula = FileItem.DateCreated

Cells(r, 5).Formula = FileItem.DateLastModified

Powyższy kod służy do wyodrębniania szczegółów plików.

Dla każdego podfolderu w SourceFolder.SubFolders

„Wywoływanie tej samej procedury dla podfolderów”

ListFilesInFolder SubFolder.Path, True

Następny podfolder

Powyższy kod służy do wyodrębniania szczegółów wszystkich plików w podfolderach.

Kolumny("A:E").Wybierz

Wybór.WyczyśćZawartość

Powyższy kod służy do usuwania treści z kolumny A do E.

Proszę postępować zgodnie z poniższym kodem!

 Option Explicit Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean) 'Deklarowanie zmiennych Dim FSO As Object Dim SourceFolder As Object Dim SubFolder As Object Dim FileItem As Object Dim r As Long 'Tworzenie obiektu FileSystemObject Set FSO = .FileSystemObject") Set SourceFolder = FSO.GetFolder(SourceFolderName) r = Range("A65536").End(xlUp).Row + 1 For Each FileItem In SourceFolder.Files 'Wyświetl właściwości pliku Cells(r, 1).Formula = FileItem.Name Cells(r, 2).Formula = FileItem.Path Cells(r, 3).Formula = FileItem.Size Cells(r, 4).Formula = FileItem.DataCreated Cells(r, 5).Formula = FileItem. DateLastModified r = r + 1 Next FileItem 'Pobieranie plików w podfolderach If IncludeSubfolders Then For Each SubFolder In SourceFolder.SubFolders 'Wywołanie tej samej procedury dla podfolderów ListFilesInFolder SubFolder.Path, True Next SubFolder End If Set FileItem = Nic Ustaw SourceFolder = Nic nie ustaw FSO = Nic ActiveWorkbook.Saved = Prawda End Sub TestListFilesInFolder() 'Deklarowanie zmiennej Dim FolderPath As String 'Wyłączanie aktualizacji ekranu Application.ScreenUpdating = False 'Pobieranie ścieżki folderu z pola tekstowego FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate 'Usuwanie zawartości kolumn A:E Columns ("A:E").Select Selection.ClearContents 'Dodawanie nagłówków Range("A14").Formula = "Nazwa pliku:" Range("B14").Formula = "Ścieżka:" Range("C14").Formula = "Rozmiar pliku:" Range("D14").Formula = "Data utworzenia:" Range("E14").Formula = "Data ostatniej modyfikacji:" 'Formatowanie nagłówków Range("A14:E14").Font .Bold = True 'Wywołanie makra ListFilesInFolder ListFilesInFolder FolderPath, True 'Automatyczne dostosowywanie rozmiaru kolumn Columns("A:E").Select Selection.Columns.AutoFit Range("A1").Select End Sub 

Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.

Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail