Đếm số thư mục con trong 1 thư mục (1 người xem)

  • Thread starter Thread starter aladinh
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

aladinh

Thành viên mới
Tham gia
22/12/08
Bài viết
24
Được thích
0
Mình đang gặp vấn đề này mong ace giúp đỡ.
Mình tạo nút Browse đến 1 thư mục thì ok rồi, nhưng mình cần đếm tất cả các thư mục con (cháu, chắt...) trong thư mục đó thì không biết làm sao.

Các bác giúp em với.
 
Nếu việc tìm thư mục cháu, chắt phức tạp quá xin giúp em Count số thư mục con là đẹp rồi.
Thanks các bác nhé.
 
Upvote 0
Nếu việc tìm thư mục cháu, chắt phức tạp quá xin giúp em Count số thư mục con là đẹp rồi.
Thanks các bác nhé.

Nó đây:
1> Liệt kê thư mục
PHP:
Public Dic As Object
Private Sub FolderList(FolderName As String, InSub As Boolean)
  Dim SubFld As Object
  On Error Resume Next
  With CreateObject("Scripting.FileSystemObject")
    With .GetFolder(FolderName)
      Dic.Add .Path, .Size / 1024
      If InSub Then
        For Each SubFld In .SubFolders
          FolderList SubFld.Path, True
        Next SubFld
      End If
    End With
  End With
End Sub
PHP:
Sub Main()
  Dim Arr, i As Long, Item
  Application.ScreenUpdating = False
  Set Dic = CreateObject("Scripting.Dictionary")
  On Error Resume Next
  Range("A2:B10000").ClearContents
  With CreateObject("Shell.Application")
    FolderList .BrowseForFolder(0, "", 1).Self.Path, True
  End With
  Arr = Dic.Keys
  ReDim Arr(Dic.Count - 1, 1)
  For Each Item In Dic.Keys
    Arr(i, 0) = CStr(Item)
    Arr(i, 1) = Dic.Item(Item)
    i = i + 1
  Next
  With Range("A2").Resize(i, 2)
    .Offset(, 1).Resize(, 1).NumberFormat = "#,##0 ""KB"""
    .Value = Arr
  End With
  Application.ScreenUpdating = True
End Sub
---------------------------
2> Đếm thư mục
Cảng dễ hơn
PHP:
Public lCount As Long
Private Sub FolderList(FolderName As String, InSub As Boolean)
  Dim SubFld As Object
  On Error Resume Next
  With CreateObject("Scripting.FileSystemObject")
    With .GetFolder(FolderName)
      lCount = lCount + .SubFolders.Count
      If InSub Then
        For Each SubFld In .SubFolders
          FolderList SubFld.Path, True
        Next SubFld
      End If
    End With
  End With
End Sub
PHP:
Sub Main()
  lCount = 0
  With CreateObject("Shell.Application")
    FolderList .BrowseForFolder(0, "", 1).Self.Path, True
  End With
  MsgBox lCount
End Sub
--------------------
Chú ý 2 sub FolderList ở trên, nếu tham số InSub = True thì xem như tính luôn thư mục con và ngược lại
 

File đính kèm

Upvote 0
Em thử hoài nhưng không được, anh Ndu giúp em cái này luôn nhé.
Giả sử trong từng thư mục đều là file Excel, em muốn cộng tất cả các cells(1,1) trong từng file trong từng thư mục.
Cảm ơn anh rất nhiều.
 
Upvote 0
Em làm được rồi. Thanks các bác nhé.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom