我想找到最新的文件,一个特定的文件夹。
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这将列出电子表格中的所有文件。在不使用排序的情况下,是否有更好的方法可以获取最新的文件名并将其赋值给变量?
*理想情况下,我希望在不需要列出它们的情况下找到该文件。
发布于 2014-02-21 14:51:16
如果只想要最新文件的文件名,请比较前一个日期和新日期,并将较高的日期存储到一个变量中,将当前文件的文件名存储到另一个变量中。
最终,一个日期将被存储,比所有其他日期都要高,这将为您提供您想要的文件。在代码中,可以这样做:
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如果这有帮助的话请告诉我们。:)
https://stackoverflow.com/questions/21936036
复制相似问题