2014-02-21 32 views
0

我想找到最新的文件一個特定的文件夾。找到文件夾中的最新文件

Sub FindFile() 

Dim MyFolder As String 
Dim MyFile As String 
Dim NextRow As Long 
Dim MyDateTime As Date 
Dim MyDate As Date 

Set sh1 = Worksheets("Sheet1") 

MyFolder = "C:\" 
MyFile = Dir(MyFolder & "*.pdf") 

NextRow = 1 
Do While Len(MyFile) > 0 
    MyDateTime = FileDateTime(MyFolder & MyFile) 
    sh1.Cells(NextRow, "A").Value = MyFolder & MyFile 
    sh1.Cells(NextRow, "B").Value = MyDateTime 
    MyDate = Int(MyDateTime) 
    If MyDate = Date Then 
     sh1.Cells(NextRow, "C").Value = "Y" 
    End If 
    NextRow = NextRow + 1 
    MyFile = Dir 
Loop 

End Sub 

這列出了電子表格中的所有文件。沒有使用Sort,有沒有更好的方法,我可以抓住最新的文件名並將其分配給一個變量?

*理想情況下,我想找到該文件,甚至不必列出它們。

回答

1

如果您只想要最新文件的文件名稱,請比較上一個日期和新日期,並將較高日期存儲到一個變量中,並將循環中當前文件的文件名存儲到另一個變量中。

最終,將存儲一個比所有其他日期更高的日期,並且這會將您所需的文件捕獲到您。在代碼中,這是可以做到像這樣:

Sub FindFileMod() 

Dim MyFolder As String 
Dim MyFile As String 
Dim NextRow As Long 
Dim MyDateTime As Date 
Dim MyDate As Date 
Dim MaxDateTime As Date 
Dim MyFileName As String 

Set sh1 = Worksheets("Sheet1") 

MyFolder = "C:\" 
MyFile = Dir(MyFolder & "*.pdf") 
MaxDateTime = 0 

NextRow = 1 
Do While Len(MyFile) > 0 
    MyDateTime = FileDateTime(MyFolder & MyFile) 
    If MyDateTime > MaxDateTime Then 
     MaxDateTime = MyDateTime 
     MyFileName = MyFolder & MyFile 
    End If 
    MyFile = Dir 
Loop 

Debug.Print MyFileName 
Debug.Print MaxDateTime 

End Sub 

讓我們知道這會有所幫助。 :)

相關問題