я хочу создать функциональный массив, который хранит все имя файла в папке perticular

это то, что я пытался ..

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

1 ответ1

1

Это получит массив имен файлов, а также сохранит этот массив в столбце 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

НОТА:

Функция возвращает массив строк (основанный на одной). Количество файлов затем становится верхней границей этого массива.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .