VBA 獲得文件夾下的所有文件(包括子文件夾)列表,輸出為getfilelist數組


Function getfilelist(path As String) As Variant
'返回文件夾的所有文件,輸出位getfilelist數組
Dim ifolder As Folder
Dim ifile As file
Dim filelist As New ArrayList

Set root = os.GetFolder(path)

For Each ifile In root.Files
    filelist.Add ifile.Name
Next

For Each ifolder In root.SubFolders
    For Each ifile In ifolder.Files
        filelist.Add ifile.Name
    Next
Next

getfilelist = filelist.ToArray

End Function 

  

其他Sub程序可以直接調用此函數;例如

Sub fds()
Dim c As Variant
c = getfilelist("C:\Users\xyz\software")
Debug.Print "文件夾下共有" & UBound(c) & "個文件"
Debug.Print "第一個文件名是:" & c(0)

 

 

 

 

 本方法使用到Arraylist。

=======================================================

其實,不要說VBA沒有好的列表,數組方法。VBA本身直接對接Excel表格,可以把數據直接寫到excel單元格,這就是非常強大的“數組或者列表”,而且很直觀,可以把“數組,列表”顯現出來。真正做到可視化編程。這是其他編程語言做不到的。

Sub dfasdf()

Dim root As Folder
Dim wjj As Folder  'wjj文件夾
Dim wj As file        'wj文件

ActiveSheet.UsedRange.Clear

i = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

Set root = fso.GetFolder("C:\Users\uuxyz\software")

For Each wj In root.Files
    Range("A" & i) = wj.Name
    i = i + 1
Next

For Each wjj In root.SubFolders
    For Each wj In wjj.Files
    Range("A" & i) = wj.Name
    i = i + 1
    Next
Next

End Sub    

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM