Giúp em cách đếm các file có trong thư mục theo đường dẫn cho trước

Liên hệ QC

vonguyen3745

Thành viên hoạt động
Tham gia
18/7/09
Bài viết
145
Được thích
5
1.jpeg
Em muốn đếm các file có trong các thư mục ở cột A mà không phải mở thư mục đó ra. thanks!
 

File đính kèm

  • demo.rar
    128 KB · Đọc: 1
Google:


PHP:
Sub GetFiles_in_Folder()
Dim Fso As Object
Dim oFolder As Object
Dim i As Long
Set Fso = CreateObject("Scripting.FileSystemObject")
    For i = 1 To 7
        Set oFolder = Fso.GetFolder(Range("A" & i).Value)
        Range("B" & i).Value = oFolder.Files.Count
    Next i
End Sub
 
Upvote 0

File đính kèm

  • dem file_vonguyen3745.xlsm
    17 KB · Đọc: 11
Upvote 0
Thử file. Lưu ý:
1/ không đếm file trong thư mục con (nếu có)
2/ Sửa lại đường dẫn của bạn ở cột A.
Không hiểu sao nó đếm thỉnh thoảng lại có thư mục bị sai số file, ví dụ có 53 file trong đó nhưng lại đếm được 54; em đã cho hiện hết file ẩn cũng chị có 53 file. Khi copy hết số file đó sang thư mục khác để đếm thì nó lại đúng. không hiểu nguyên nhân là do đâu nhỉ bác.
 
Lần chỉnh sửa cuối:
Upvote 0
Không hiểu sao nó đếm thỉnh thoảng lại có thư mục bị sai số file, ví dụ có 53 file trong đó nhưng lại đếm được 54; em đã cho hiện hết file ẩn cũng chị có 53 file. Khi copy hết số file đó sang thư mục khác để đếm thì nó lại đúng. không hiểu nguyên nhân là do đâu nhỉ bác.
Trong Folder đó có chứa File rác nó ẩn nên không nhìn thấy, khi ta Copy nó chỉ Copy File thật.
 
Upvote 0
Không hiểu sao nó đếm thỉnh thoảng lại có thư mục bị sai số file, ví dụ có 53 file trong đó nhưng lại đếm được 54; em đã cho hiện hết file ẩn cũng chị có 53 file. Khi copy hết số file đó sang thư mục khác để đếm thì nó lại đúng. không hiểu nguyên nhân là do đâu nhỉ bác.
Sau khi di chuyển các file đi, chạy code để đếm thư mục trống đó thử kết quả nó đếm là 1 file hay 0 file?
 
Upvote 0
Dùng Files.Count là được rồi.

Mảng arr chỉ cần lấy 1 cột là được rồi, và vẫn dùng mảng arr để chứa kết quả.
PHP:
arr(i, 1) = k

-----------
Thêm dòng này xem nó là gì.

PHP:
For Each FileItem In .Files
    Debug.Print FileItem.Name  '<---------- thêm dòng này. Nhớ bật cửa sổ Immediate lên (nhấn Ctrl + G)
 
Upvote 0
Dùng Files.Count là được rồi.

Mảng arr chỉ cần lấy 1 cột là được rồi, và vẫn dùng mảng arr để chứa kết quả.
PHP:
arr(i, 1) = k

-----------

Thêm dòng này xem nó là gì.

PHP:
For Each FileItem In .Files
    Debug.Print FileItem.Name  '<---------- thêm dòng này. Nhớ bật cửa sổ Immediate lên (nhấn Ctrl + G)
Nó vẫn ra kết quả như thế bác à, Immediate nó hiện tên các file
 
Upvote 0
Vậy mà không biết chụp ảnh cái đó úp lên đây. Khoe "hiện tên các file" nhưng không ai nhìn thấy thì làm ăn gì đâu.
thì nó hiện các file trong thư mục đó thôi bác
22.jpeg
Thư mục nào báo sai em thấy có thêm file như này trong Immediate.

33.png
 
Lần chỉnh sửa cuối:
Upvote 0
thì nó hiện các file trong thư mục đó thôi bác
Bạn buồn cười ghê. Mình trích dẫn rất chuẩn, không trích dẫn lung tung.

Cái 1 File kia đâu?

1628738202035.png

Cái đó là 1 File chuẩn chỉ. Vậy tại sao, lý do là gì mà bạn lại kêu là sai?

1628738240590.png
1628738271554.png

Bạn không tính File đó thì nêu là không tính, để người viết code chừa nó ra. Chỉ có thế thôi.

Còn chỗ này, bạn chưa biết làm.

1628738368186.png
 
Upvote 0
thì nó hiện các file trong thư mục đó thôi bác
View attachment 263949
Thư mục nào báo sai em thấy có thêm file như này:
View attachment 263950
Bạn search thump.db để biết đó là file gì đi! Nó là file ẩn, vì bạn không thiết đặt hiển thị file ẩn nên không thấy chứ không phải là không có. Giống như sóng điện từ: không thấy nó không có nghĩa là nó không tồn tại.
 
Upvote 0
123.png
Em đã nhấn vào hiện file ẩn rồi vẫn không có, hay nó ẩn kiểu gì nhỉ.
 
Upvote 0
Vậy có thể sửa code để chỉ đếm những file hiện, không đếm những file ẩn không bác!
 
Upvote 0
Vậy có thể sửa code để chỉ đếm những file hiện, không đếm những file ẩn không bác!
Bạn xóa cái file .db ấy đi nếu cho nó hiện ra được. Nó chỉ tình cờ lọt vào đó chứ đâu phải thư mục nào cũng có. Còn như không xóa mà muốn không đếm nó thì thêm dòng code loại trừ nó ra thôi: If Left(tên file, 3) <> ".db" Then
 
Upvote 0
View attachment 263956
Em đã nhấn vào hiện file ẩn rồi vẫn không có, hay nó ẩn kiểu gì nhỉ.
File thumb.db thường dùng để thay icon của folder. File này có thuộc tính hệ thống. Để hiện các file hệ thống, bạn bấm vào options-view, bỏ chọn Hide protected operating system files (Recommended).
Xin lỗi vì không nhìn thấy bài của bạn befaint đã hướng dẫn rồi.
1628766282014.png
 
Upvote 0
Web KT
Back
Top Bottom