Note: The other languages of the website are Google-translated. Back to English

Làm cách nào để liệt kê tất cả các thư mục và thư mục con trong Excel?

Bạn đã bao giờ gặp phải vấn đề liệt kê tất cả các thư mục và thư mục con từ một thư mục cụ thể vào một trang tính chưa? Trong Excel, không có cách nào nhanh chóng và tiện dụng để lấy tên của tất cả các thư mục trong một thư mục cụ thể cùng một lúc. Để giải quyết công việc, bài viết này có thể giúp bạn.

Liệt kê tất cả các thư mục và thư mục con bằng mã VBA

Tab Office Cho phép Chỉnh sửa và Duyệt theo Tab trong Office, và Giúp Công việc của Bạn Dễ dàng hơn Nhiều ...
Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn
  • Tái sử dụng mọi thứ: Thêm các công thức, biểu đồ và bất kỳ thứ gì khác được sử dụng nhiều nhất hoặc phức tạp vào mục yêu thích của bạn và nhanh chóng sử dụng lại chúng trong tương lai.
  • Hơn 20 tính năng văn bản: Trích xuất số từ chuỗi văn bản; Trích xuất hoặc loại bỏ một phần nội dung; Chuyển đổi số và tiền tệ sang từ tiếng Anh.
  • Công cụ hợp nhất: Nhiều Workbook và Sheets thành một; Hợp nhất nhiều ô / hàng / cột mà không làm mất dữ liệu; Hợp nhất các hàng và tổng trùng lặp.
  • Công cụ tách: Chia Dữ liệu thành Nhiều Trang tính Dựa trên Giá trị; Một sổ làm việc cho nhiều tệp Excel, PDF hoặc CSV; Một cột đến nhiều cột.
  • Dán bỏ qua Hàng ẩn / được lọc; Đếm và tổng theo Màu nền; Gửi hàng loạt email được cá nhân hóa cho nhiều người nhận.
  • Bộ lọc siêu: Tạo lược đồ lọc nâng cao và áp dụng cho bất kỳ trang tính nào; Sắp xếp theo tuần, ngày, tần suất và hơn thế nữa; Lọc bằng cách in đậm, công thức, chú thích ...
  • Hơn 300 tính năng mạnh mẽ; Hoạt động với Office 2007-2021 và 365; Hỗ trợ tất cả các ngôn ngữ; Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn.

mũi tên màu xanh bong bóng bên phải Liệt kê tất cả các thư mục và thư mục con bằng mã VBA

Nếu bạn muốn lấy tất cả các tên thư mục từ một thư mục được chỉ định, mã VBA sau có thể giúp bạn, vui lòng thực hiện như sau:

1. Giữ ALT + F11 chìa khóa và nó mở Cửa sổ Microsoft Visual Basic for Applications.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Cửa sổ mô-đun.

Mã VBA: Liệt kê tất cả các thư mục và tên thư mục con

Sub FolderNames()
'Update 20141027
Application.ScreenUpdating = False
Dim xPath As String
Dim xWs As Worksheet
Dim fso As Object, j As Long, folder1 As Object
With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Choose the folder"
    .Show
End With
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Application.Workbooks.Add
Set xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 5).Value = Array("Path", "Dir", "Name", "Date Created", "Date Last Modified")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder1 = fso.getFolder(xPath)
getSubFolder folder1
xWs.Cells(2, 1).Resize(1, 5).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 5).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Dim SubFolder As Object
Dim subfld As Object
Dim xRow As Long
For Each SubFolder In prntfld.SubFolders
    xRow = Range("A1").End(xlDown).Row + 1
    Cells(xRow, 1).Resize(1, 5).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder.DateLastModified)
Next SubFolder
For Each subfld In prntfld.SubFolders
    getSubFolder subfld
Next subfld
End Sub

3. Sau đó nhấn F5 phím để chạy mã này và Chọn thư mục cửa sổ sẽ bật ra, sau đó bạn cần chọn thư mục mà bạn muốn liệt kê tên thư mục và thư mục con, xem ảnh chụp màn hình:

doc-list-thư mục-tên-1

4. Nhấp chuột OKvà bạn sẽ nhận được đường dẫn thư mục và các thư mục con, thư mục, tên, ngày tạo và ngày sửa đổi lần cuối trong sổ làm việc mới, xem ảnh chụp màn hình:

doc-list-thư mục-tên-1


Bài viết liên quan:

Làm thế nào để liệt kê các tệp trong một thư mục vào trang tính trong Excel?


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (18)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn rất nhiều.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều gì sẽ xảy ra nếu tôi cần tạo liên kết cũng cho thư mục, tôi nên sửa đổi gì trong mã hóa và không thể chúng tôi tạo nút và liên kết mã hóa tương tự với nó, vì vậy nó sẽ hữu ích cho những người dùng không biết cách chạy macro
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đã làm chính xác những gì bạn yêu cầu. Tôi đã đặt logo công ty của mình trên whorksheet, sau đó nhấp chuột phải vào nó và gán macro (là đoạn mã trên.) Bạn cũng có thể chèn hướng dẫn sử dụng.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Mã này thực sự đã lưu trong ngày. Cảm ơn vì đã chia sẻ nó.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi vừa làm theo chỉ dẫn của bạn nhưng tôi gặp lỗi khi nhấn F5 để chạy. Lỗi bên dưới làm nổi bật "Dim xWs As Worksheet". Có mã cập nhật nào tôi có thể sử dụng không? Lỗi biên dịch: Không xác định được kiểu do người dùng xác định
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
[quote] Xin chào, tôi vừa làm theo chỉ dẫn của bạn nhưng tôi gặp lỗi khi nhấn F5 để chạy. Lỗi bên dưới làm nổi bật "Dim xWs As Worksheet". Có mã cập nhật nào tôi có thể sử dụng không? Lỗi biên dịch: Không xác định được kiểu do người dùng xác địnhBởi Caralyn[/ quote] Bạn đang sử dụng tiện ích bổ sung Kutools hoặc trình soạn thảo MS Excel VBA? Vì tôi không sử dụng tiện ích bổ sung, tôi không thể lặp lại lỗi của bạn. Sử dụng MS VBA Editor hoạt động mà không có bất kỳ lỗi nào.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Khi tôi chạy mã này, nó hoạt động nhưng nó chỉ hiển thị thư mục đầu tiên trong thư mục mà tôi chọn. Ví dụ: Khi tôi chạy mã, tôi chọn "C: \ Users \ Johnson \ Music" (Lưu ý: Tôi có 70 Thư mục bên trong Thư mục Nhạc của mình) Khi chạy mã, nó chỉ hiển thị thư mục đầu tiên và sau đó liệt kê tất cả các thư mục bên trong thư mục. Tôi muốn nó liệt kê tất cả các thư mục bên trong thư mục Nhạc.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi cùng với những người khác - nó hoạt động ở một điểm nào đó.

Đối với tôi, điểm đó là nó tạo ra các s / s mới, chi tiết thư mục tôi đã hiển thị (trong Ô A1), một thanh được đánh dấu màu vàng ở hàng 2 với các tiêu đề theo sau là không có gì khác!

Thư mục tôi đang xem trống ngoại trừ các thư mục con (tức là không có tệp dữ liệu nào tồn tại) và các thư mục con không có thứ bậc nào cả.

Bất cứ ai có thể giúp tôi liệt kê các thư mục con và tệp của chúng được không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đã sửa đổi nó để thêm kích thước:



Sub FolderNames ()
'Cập nhật 20141027
Application.ScreenUpdating = Sai
Dim xPath dưới dạng chuỗi
Làm mờ xWs dưới dạng trang tính
Dim fso As Object, j As Long, folder1 As Object
Với Application.FileDialog (msoFileDialogFolderPicker)
.Title = "Chọn thư mục"
.Chỉ
Kết thúc với
On Error Resume Next
xPath = Application.FileDialog (msoFileDialogFolderPicker) .SelectedItems (1) & "\"
Ứng dụng.Workbooks.Add
Đặt xWs = Application.ActiveSheet
xWs.Cells (1, 1) .Value = xPath
xWs.Cells (2, 1) .Resize (1, 6) .Value = Array ("Path", "Dir", "Name", "Date Created", "Date Last Modified", "Size")
Đặt fso = CreateObject ("Scripting.FileSystemObject")
Đặt thư mục1 = fso.getFolder (xPath)
thư mục getSubFolder1
xWs.Cells (2, 1) .Resize (1, 6) .Interior.Color = 65535
xWs.Cells (2, 1) .Resize (1, 6) .EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder (ByRef prntfld As Object)
Làm mờ thư mục con dưới dạng đối tượng
Subfld mờ làm đối tượng
Dim xRow As Long
Đối với mỗi thư mục con trong prntfld.SubFolders
xRow = Range ("A1"). End (xlDown) .Row + 1
Cells (xRow, 1) .Resize (1, 6) .Value = Array (SubFolder.Path, Left (SubFolder.Path, InStrRev (SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreate, SubFolder. DateLastModified, SubFolder.Size)
Thư mục con tiếp theo
Đối với từng subfld Trong prntfld.SubFolders
getSubFolder con
Con tiếp theo
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Khi bạn bao gồm hàm SubFolder.Size, tập lệnh không còn liệt kê tất cả các thư mục con nữa, chỉ có mức đầu tiên.
Làm cách nào tôi có thể bao gồm kích thước và nhận được tất cả các thư mục con được liệt kê?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào. Bạn có thể vui lòng giúp tôi về một mã mà tôi đang gặp khó khăn trong việc tìm kiếm.

Dưới đây là các yêu cầu đối với mã.



1. VBA phải đi qua tất cả các thư mục và thư mục con
và kiểm tra từng loại tệp. Người dùng chỉ nên cung cấp đường dẫn cho
thư mục trên cùng. Sau đó, mã sẽ kiểm tra tất cả các thư mục và thư mục con
trong thư mục trên cùng.



2. Sau khi kiểm tra các tệp, mã sẽ nén tất cả các tệp
mà đã không được truy cập trong hơn 3 tháng. Khoảng thời gian được truy cập là
điều gì đó mà tôi có thể thay đổi trong tương lai nếu được yêu cầu. Nó nên
cho phép tôi thay đổi nó thành 1 tháng hoặc 5 tháng nếu được yêu cầu.



3. Sau khi nén các tệp, mã sẽ xóa
các tệp gốc đã được nén.



4. Tệp nén phải được lưu trong cùng một đường dẫn với
tập tin gốc.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Công cụ tuyệt vời! Sau thời gian dài nghiên cứu đã tìm ra món đồ chơi chính xác này :)
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chỉ những gì tôi cần và hướng dẫn hoàn toàn rõ ràng về cách làm cho nó hoạt động. Cảm ơn rất nhiều
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn rất nhiều !, rất hữu ích.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này đã hoạt động và làm thế nào ... Cảm ơn bạn rất nhiều. Chỉ một bổ sung-- ở Bước 3, tôi phải nhấp vào Bước vào và sau đó chỉ phím F5 mới hoạt động để chọn thư mục.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn rất nhiều vì mã hữu ích này. đó là kết quả lưu có thể có trong cùng một sổ làm việc chứ không phải sổ mới?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn, đây chính xác là những gì chúng tôi cần để ghi lại các thư mục cho khách hàng của chúng tôi.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Công việc tuyệt vời ... Nó rất hữu ích cho tôi, cảm ơn rất nhiều
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL