listing files works, but how do I list files within folders (VBA, excel)?
I have some code which I found online and it's working great. It lists any files in a specified folder and their properties. I just need to amend this function which returns a list of files. I need it to look in a given path at ALL files. So if it's a folder, open it and return those files too. I eventually need to get this to mark each file (so in a column in excel) where it came from. If it would be possible to create a hirarchy somehow that would be great.... but for now, just opening a folder if it finds on and listing those files would be awesome!
Any help is REALLY appreciated!
Private Function fcnGetFileList(ByVal strPath As String, Optional strFilter As String) As Variant
' Returns a one dimensional array with filenames
' 开发者_如何学编程Otherwise returns False
Dim f As String
Dim i As Integer
Dim x As Integer
Dim FileList() As String
If strFilter = "" Then strFilter = "*.*" 'can provide an extension to check?
'set the path
Select Case Right$(strPath, 1)
Case "\", "/"
strPath = Left$(strPath, Len(strPath) - 1)
End Select
ReDim Preserve FileList(0)
f = Dir$(strPath & "\" & strFilter)
Do While Len(f) > 0
ReDim Preserve FileList(i) As String
FileList(i) = f
i = i + 1
f = Dir$()
Loop
If FileList(0) <> Empty Then
fcnGetFileList = FileList
Else
fcnGetFileList = False
End If
End Function
Ideas:
Add the microsoft scripting runtime And use the file system object (much better file/folder handling)
Make this function recursive, add a vbdirectory parameter to the dir function, and use GetAtrr to get info about each file. If the file is a folder again, call this function again with this new folder.
精彩评论