criando uma matriz funcional para armazenar nomes de arquivos em uma pasta

0

Eu quero criar uma matriz funcional que armazena todo o nome do arquivo na pasta perticular

isto é o que eu tentei ..

Function number_of_file(i As Integer) As Variant

Dim file_object As Object
Dim files_in_folder() As Variant

Set file_object = CreateObject("scripting.filesystemobject").getfolder("D:\ls")

i = 0
For Each obj In file_object.Files
ReDim files_in_folder(i)
    files_in_folder(i) = obj.Name
    i = i + 1
Next obj

number_of_files = files_in_folder
End Function


sub test()
files_in_folder(2)
end sub
    
por Ashwith Ullal 17.10.2015 / 13:27

1 resposta

1

Isso obterá a matriz de nomes de arquivos e também armazenará essa matriz na coluna A :

Sub MAIN()
   Dim FolderOfInterest As String, i As Long
   FolderOfInterest = "C:\TestFolder"
   Dim ary()
   ary = files_in_folder(FolderOfInterest)
   MsgBox "There are " & UBound(ary) & " files in folder " & FolderOfInterest
   '
   '  Now store the array in a worksheet column
   '
   i = 1
   For Each a In ary
      Cells(i, "A").Value = a
      i = i + 1
   Next a
End Sub

Public Function files_in_folder(folderS As String) As Variant
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set folder = fso.GetFolder(folderS)
   ReDim temp(1 To folder.Files.Count)

   i = 1
   For Each file In folder.Files
      temp(i) = file.Name
      i = i + 1
   Next file

   files_in_folder = temp
End Function

NOTA:

A função retorna uma matriz de strings, (uma baseada) . O número de arquivos é o limite superior dessa matriz.

    
por 17.10.2015 / 14:24