Как заполнить имена файлов и дату изменения нескольких файлов из папки в ListBox с несколькими столбцами в VBA? - PullRequest
0 голосов
/ 09 мая 2020

У меня в папке есть несколько файлов. Мне нужен список с двумя столбцами.

В первом столбце должен отображаться список имен файлов в папке.

Во втором столбце должны отображаться соответствующие измененные данные этих имен файлов.

Это код, который правильно заполняет имена файлов для меня:

'CLEAR LISTBOX
ListBox1.Clear

'BUILD A LIST OF ALL FILES
FileName = Dir(FilePath & "*" & "*")
While FileName <> ""


'ADD FILE NAMES TO THE LIST
I = I + 1
ReDim Preserve FileList(1 To I)
FileList(I) = FileName


'GET NEXT FILENAMES
FileName = Dir()
Wend


'WERE ANY FILES FOUND
If I = 0 Then
MsgBox "No files found!"
Exit Sub
End If


'CYCLE THROUGH LIST AND ADD TO LISTBOX
For I = 1 To UBound(FileList)
Me.ListBox1.AddItem FileList(I)
Next

1 Ответ

3 голосов
/ 09 мая 2020

Я бы рекомендовал использовать FileSystemObject, поскольку вы можете получить доступ к этому свойству напрямую. Вы также можете подсчитать количество файлов, чтобы вы могли измерить свой массив перед его заполнением.

Я написал приведенный ниже код, используя раннее связывание для Microsoft Scripting Runtime, но вы, безусловно, можете использовать позднее связывание при необходимости.

    Dim FSO As FileSystemObject
    Dim FO As Folder, FI As File, FIs As Files

    'Don't forget to declare FilePath as in your code

    Dim FileList()
    Dim I As Long

Set FSO = New FileSystemObject
Set FO = FSO.GetFolder(FilePath)
Set FIs = FO.Files

ReDim FileList(1 To FIs.Count, 1 To 2)
I = 0

'Populate the FileList array
For Each FI In FIs
    I = I + 1
    FileList(I, 1) = FI.Name
    FileList(I, 2) = FI.DateLastModified
Next FI

'Clear the ListBox
'Then declare the number of columns and populate it
With Me.ListBox1
    .Clear
    .ColumnCount = 2
    .List = FileList
End With


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...