, how are you? Thank you very much for your help and guide. I managed to solve the loop problem already.
Anyway, I have some other questions and this is the extension from my previous question before.
Well, I have another column added, called "FILE NAME" and this column will list all the file names in a folder. Referring to the image, I'd like to know how to:
1. List all the file names from a folder including the subfolders (if any) from a given directory? I'd like to list only the file names with the extension of .doc, .xls and .EAP (user will need to input the path in a cell; Eg. in "C9").
2. Sort the file names under the 'FILE NAME' column according to the matched IDs in 'ID' colum? Eg. of file name: (AX2010-SC-0001)John
Let me know if there is any part that you don't understand, and
Best wishes, Ow
Ow
here is code to get a list of files:
Option Base 1
Dim aFiles() As String, iFile As Integer
Sub ListAllFilesInDirectoryStructure()
Dim Counter As Integer iFile = 0 ListFilesInDirectory "c:\test\" ' change the top level as you wish
For Counter = 1 To iFile Worksheets("Sheet1").Cells(Counter, 1).Value = aFiles(Counter) Next
End Sub
Sub ListFilesInDirectory(Directory As String)
Dim aDirs() As String, iDir As Integer, stFile As String
' use Dir function to find files and directories in Directory ' look for directories and build a separate array of them ' note that Dir returns files as well as directories when vbDirectory
specified
iDir = 0 stFile = Directory & Dir(Directory & "*.*", vbDirectory) Do While stFile <> Directory If Right(stFile, 2) = "\." Or Right(stFile, 3) = "\.." Then ' do nothing - GetAttr doesn't like these directories ElseIf GetAttr(stFile) = vbDirectory Then ' add to local array of directories iDir = iDir + 1 ReDim Preserve aDirs(iDir) aDirs(iDir) = stFile Else ' add to global array of files iFile = iFile + 1 ReDim Preserve aFiles(iFile) aFiles(iFile) = stFile End If stFile = Directory & Dir() Loop
' now, for any directories in aDirs call self recursively If iDir > 0 Then For iDir = 1 To UBound(aDirs) ListFilesInDirectory aDirs(iDir) & Application.PathSeparator Next iDir End If
End Sub
I don't know what you mean by sorting the file names by ID.
Advertisement