Trong bài viết này, chúng tôi sẽ tạo một macro để thu thập chi tiết của tất cả các tệp trong một thư mục.

Trước khi chạy macro, chúng ta cần chỉ định đường dẫn của thư mục trong hộp văn bản.

ArrowMain

Khi chạy macro, nó sẽ trả về Tên tệp, Đường dẫn tệp, Kích thước tệp, Ngày tạo và Ngày sửa đổi lần cuối của tất cả các tệp trong thư mục.

ArrowOutput

Giải thích logic

Trong bài viết này, chúng tôi đã tạo hai macro “ListFilesInFolder” và “TestListFilesInFolder”.

Macro “ListFilesInFolder” sẽ hiển thị chi tiết liên quan đến tất cả các tệp trong thư mục.

Macro “TestListFilesInFolder” được sử dụng để chỉ định tiêu đề và gọi macro “ListFilesInFolder”.

Giải thích mã

Đặt FSO = CreateObject (“Scripting.FileSystemObject”)

Đoạn mã trên được sử dụng để tạo một đối tượng mới của đối tượng hệ thống tệp.

Đặt SourceFolder = FSO.GetFolder (SourceFolderName)

Đoạn mã trên được sử dụng để tạo một đối tượng của thư mục được chỉ định bởi đường dẫn.

Cells (r, 1) .Formula = FileItem.Name Cells (r, 2) .Formula = FileItem.Path Cells (r, 3) .Formula = FileItem.Size Cells (r, 4) .Formula = FileItem.DateCrated Cells ( r, 5) .Formula = FileItem.DateLastModified Đoạn mã trên được sử dụng để trích xuất chi tiết của các tệp.

Đối với mỗi thư mục con trong SourceFolder.SubFolders ‘Gọi thủ tục tương tự cho thư mục con ListFilesInFolder SubFolder.Path, True Next SubFolder Đoạn mã trên được sử dụng để trích xuất chi tiết của tất cả các tệp trong thư mục con.

Columns (“A: E”). Chọn Selection.ClearContents Đoạn mã trên được sử dụng để xóa nội dung từ cột A đến E.

Vui lòng theo dõi bên dưới để biết mã

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

Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.

Chúng tôi rất muốn nghe ý kiến ​​từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]