vonguyen3745
Thành viên hoạt động
- Tham gia
- 18/7/09
- Bài viết
- 145
- Được thích
- 5
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
Thử file. Lưu ý:View attachment 263916
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!
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.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.
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.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?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.
Xóa hết file đi, đếm vẫn báo 1 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?
Dùng Files.Count là được rồi.Thử file
arr(i, 1) = k
Thêm dòng này xem nó là gì.đếm vẫn báo 1
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 fileDù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)
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.thì nó hiện các file trong thư mục đó thôi bác
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.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 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" ThenVậy có thể sửa code để chỉ đếm những file hiện, không đếm những file ẩn không bác!
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).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ỉ.