Excel 在文件夹中查找最新文件

Excel 在文件夹中查找最新文件,excel,vba,Excel,Vba,我想在特定文件夹中查找最新的文件 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 Le

我想在特定文件夹中查找最新的文件

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,是否有更好的方法可以获取最新的文件名并将其分配给变量


*理想情况下,我希望查找文件而不必列出它们。

如果只需要最新文件的文件名,请比较上一个日期和新日期,并将较高的日期存储到一个变量中,将循环中当前文件的文件名存储到另一个变量中

最终,将存储一个高于所有其他日期的日期,这将为您提供所需的文件。在代码中,可以这样做:

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
让我们知道这是否有帮助。:)