I see a couple of potential problems with the function as shown. For the first file that is checked, FilDate has not been initialized - that may or may not be a problem, but I wouldn't want to risk it.
Secondly, FilDate is being reset for each iteration in the loop, not just being reset for the latest file. Therefore, the function will return the latest only between the last two files in the directory. I would suggest that you try following
Dim FilDate As Variant
Dim NewestFile As String
Dim FSO As New Scripting.FileSystemObject
Dim Fil As Scripting.File
FilDate = ""
For Each Fil In FSO.GetFolder("<Dir Name>"

.Files
If (FilDate = ""

Then
NewestFile = Fil.Name
FilDate = Fil.DateLastModified
Else
If DateDiff("s", Fil.DateLastModified, FilDate) < 0 Then
NewestFile = Fil.Name
FilDate = Fil.DateLastModified
End If
End If
Next
GetLatestFile = NewestFile Good Luck
--------------
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein