Ok. This is faster anyway. Returns an array of file paths from a given folder, sorted in descending order by the last modified date...
Opening latest files 1142342.zip
<table width="100%" border="1" bgcolor="White" style="filter
rogid:DXImageTransform.Microsoft.Gradient(endColorstr='#C0CFE2', startColorstr='#FFFFFF', gradientType='0');"><tr><TD><font size="2" face=Courier New> <font color="#0000A0">Option</font> <font color="#0000A0">Explicit</font>
<font color="#0000A0">Sub</font> Example()
<font color="#0000A0">Dim</font> MyFiles() <font color="#0000A0">As</font> String, x <font color="#0000A0">As</font> <font color="#0000A0">Integer</font>
MyFiles = GetFilesSortedByDateLastModified("C:\")
<font color="#0000A0">For</font> x = LBound(MyFiles) <font color="#0000A0">To</font> UBound(MyFiles)
Debug.Print MyFiles(x)
<font color="#0000A0">Next</font>
<font color="#0000A0">End</font> <font color="#0000A0">Sub</font>
<font color="#0000A0">Function</font> GetFilesSortedByDateLastModified(DirectoryPath <font color="#0000A0">As</font> String) <font color="#0000A0">As</font> String()
<font color="#0000A0">Dim</font> fso <font color="#0000A0">As</font> Object, f <font color="#0000A0">As</font> Object, ff <font color="#0000A0">As</font> <font color="#0000A0">Object</font>
<font color="#0000A0">Dim</font> x <font color="#0000A0">As</font> Long, Dates() <font color="#0000A0">As</font> Date, Paths() <font color="#0000A0">As</font> <font color="#0000A0">String</font>
<font color="#0000A0">Set</font> fso = CreateObject("Scripting.FileSystemObject")
<font color="#0000A0">Set</font> ff = fso.GetFolder(DirectoryPath).Files
<font color="#0000A0">ReDim</font> Paths(1 <font color="#0000A0">To</font> ff.Count)
<font color="#0000A0">ReDim</font> Dates(1 <font color="#0000A0">To</font> ff.Count)
<font color="#0000A0">For</font> <font color="#0000A0">Each</font> f <font color="#0000A0">In</font> ff
x = x + 1
Dates(x) = f.DateLastModified
Paths(x) = f.Path
<font color="#0000A0">Next</font>
<font color="#0000A0">Call</font> BubbleSort(Dates, Paths)
GetFilesSortedByDateLastModified = Paths
<font color="#0000A0">End</font> <font color="#0000A0">Function</font>
<font color="#008000">'modified version of this</font>
<font color="#008000">'http://support.microsoft.com/kb/213818</font>
<font color="#0000A0">Function</font> BubbleSort(SortByThis, SortAlongSide)
<font color="#0000A0">Dim</font> Temp(1) <font color="#0000A0">As</font> <font color="#0000A0">Variant</font>
<font color="#0000A0">Dim</font> i <font color="#0000A0">As</font> <font color="#0000A0">Integer</font>
<font color="#0000A0">Dim</font> NoExchanges <font color="#0000A0">As</font> <font color="#0000A0">Integer</font>
<font color="#008000"> ' Loop until no more "exchanges" are made.</font>
<font color="#0000A0">Do</font>
NoExchanges = <font color="#0000A0">True</font>
<font color="#008000"> ' Loop through each element in the array.</font>
<font color="#0000A0">For</font> i = 1 <font color="#0000A0">To</font> UBound(SortByThis) - 1
<font color="#008000"> ' If the element is greater than the element</font>
<font color="#008000"> ' following it, exchange the two elements.</font>
<font color="#0000A0">If</font> SortByThis(i) < SortByThis(i + 1) <font color="#0000A0">Then</font>
NoExchanges = <font color="#0000A0">False</font>
Temp(0) = SortByThis(i)
Temp(1) = SortAlongSide(i)
SortByThis(i) = SortByThis(i + 1)
SortAlongSide(i) = SortAlongSide(i + 1)
SortByThis(i + 1) = Temp(0)
SortAlongSide(i + 1) = Temp(1)
<font color="#0000A0">End</font> <font color="#0000A0">If</font>
<font color="#0000A0">Next</font> i
<font color="#0000A0">Loop</font> <font color="#0000A0">While</font> <font color="#0000A0">Not</font> (NoExchanges)
<font color="#0000A0">End</font> <font color="#0000A0">Function</font>
</FONT></td></tr></table><button onclick='document.all("10152006173212984").value=document.all("10152006173212984").value.replace(/<br \/>\s\s/g,"");document.all("10152006173212984").value=document.all("10152006173212984").value.replace(/<br \/>/g,"");window.clipboardData.setData("Text",document.all("10152006173212984").value);'>Copy to Clipboard</BUTTON><textarea style="position:absolute;visibility:hidden" name="10152006173212984" wrap="virtual">
Option Explicit
Sub Example()
Dim MyFiles() As String, x As Integer
MyFiles = GetFilesSortedByDateLastModified("C:\")
For x = LBound(MyFiles) To UBound(MyFiles)
Debug.Print MyFiles(x)
Next
End Sub
Function GetFilesSortedByDateLastModified(DirectoryPath As String) As String()
Dim fso As Object, f As Object, ff As Object
Dim x As Long, Dates() As Date, Paths() As String
Set fso = CreateObject("Scripting.FileSystemObject")
Set ff = fso.GetFolder(DirectoryPath).Files
ReDim Paths(1 To ff.Count)
ReDim Dates(1 To ff.Count)
For Each f In ff
x = x + 1
Dates(x) = f.DateLastModified
Paths(x) = f.Path
Next
Call BubbleSort(Dates, Paths)
GetFilesSortedByDateLastModified = Paths
End Function
'modified version of this
'http://support.microsoft.com/kb/213818
Function BubbleSort(SortByThis, SortAlongSide)
Dim Temp(1) As Variant
Dim i As Integer
Dim NoExchanges As Integer
' Loop until no more "exchanges" are made.
Do
NoExchanges = True
' Loop through each element in the array.
For i = 1 To UBound(SortByThis) - 1
' If the element is greater than the element
' following it, exchange the two elements.
If SortByThis(i) < SortByThis(i + 1) Then
NoExchanges = False
Temp(0) = SortByThis(i)
Temp(1) = SortAlongSide(i)
SortByThis(i) = SortByThis(i + 1)
SortAlongSide(i) = SortAlongSide(i + 1)
SortByThis(i + 1) = Temp(0)
SortAlongSide(i + 1) = Temp(1)
End If
Next i
Loop While Not (NoExchanges)
End Function
</textarea>