Это аналогичный способ, при котором каждый из файлов приписывается к отдельной строке в столбцах от D до H.
Обратите внимание, что если вы запускаете это дважды, что выбрало второевремя перезапишет то, что уже присутствует, и не добавится к концу. Чтобы изменить это поведение, вам понадобится другая переменная для хранения и сохранения вашего количества файлов, затем в следующий раз при записи массива на лист начните свой диапазон с вашего предыдущего количества файлов +1, затем конечный диапазон с предыдущим количеством файлов + ваш новый файлсосчитать.
Sub newtest()
Dim FileFldr As FileDialog
Dim FileName, OrigFilePath, FileType, FilePath, CustID As String
CustID = txtID.Value
Set FileFldr = Application.FileDialog(msoFileDialogFilePicker)
With FileFldr
.AllowMultiSelect = True
.Title = "Select file to attach"
.Filters.Add "All Files", "*.*", 1
If .Show <> -1 Then GoTo NoSelection
Dim ArrayCount As Long: RowCount = 0 'counter to hold what number in the array your on : 'set this number to 0 where array starts
Dim FileArray As Variant 'declare the array which will hold all the files user selected
Dim FileCount As Long: FileCount = .SelectedItems.Count 'declare the long which will hold the amount of files the user has selected - set to the amount of selected files
ReDim FileArray(FileCount, 4) 'redim the array to the size of the amount of files
'loop through each of the selected items and assign its values to an address in the array
For Each vrtSelectedItem In .SelectedItems
FilePath = vrtSelectedItem
FileName = Dir(FilePath)
FileType = Right(FileName, Len(FileName) - InStr(Dir(FileName), "."))
FileArray(ArrayCount, 0) = CustID
FileArray(ArrayCount, 1) = FileName
FileArray(ArrayCount, 2) = FileType
FileArray(ArrayCount, 3) = FilePath
FileArray(ArrayCount, 4) = "=Row()"
ArrayCount = ArrayCount + 1
Next
With Sheet6
.Range(Cells(1, 4), Cells(FileCount, 8)).Value = FileArray 'set range to what the array is and then put values from array in that range
End With
NoSelection:
End With
Sheet6.Activate
End Sub