Похоже, вы хотите открыть три самых последних измененных файла в вашем каталоге C: / test /.
Самый простой способ сделать это - загрузить имена файлов иих соответствующие даты модификации в массивы, сортируйте их по дате модификации и загружайте три из нижней части вашего массива.Есть и другие ответы о переполнении стека , которые помогут вам эффективно сортировать массивы.
К сожалению, в VBA нет простых встроенных функций сортировки.Чуть менее чистый метод - загрузить имена файлов и соответствующие даты их изменения в лист, а затем воспользоваться функциями сортировки Excel , снова считывая нижнюю часть вашего отсортированного диапазона.
Теперь, если вы интересуетесь только тремя самыми последними изменениями и когда-либо будете интересоваться только этими тремя , вот быстрое и грязное изменение существующего кода:
Sub openLastModified()
Dim folderPath As String, tableName As String, latestTblName(2) As String
Dim modifiedDate As Date
Dim latestModified(2) As Date
folderPath = "C:\test\"
tableName = Dir(folderPath & "*.cdr")
Do While tableName <> vbNullString
Dim i As Long
modifiedDate = FileDateTime(folderPath & tableName)
For i = 0 To 2
' Check if this file's modification date is later than that of each
' in the latestTblName array, starting with the most recent.
If latestModified(i) < modifiedDate Then
Dim j As Long
' Move remaining values down in the array.
For j = 1 To i Step -1
latestModified(j + 1) = latestModified(j)
latestTblName(j + 1) = latestTblName(j)
Next j
' Place the file name & modification date in the arrays.
latestModified(i) = modifiedDate
latestTblName(i) = tableName
Exit For
End If
Next i
tableName = Dir()
Loop
For i = 0 To 2
OpenDocument folderPath & latestTblName(i)
Next i
End Sub