首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在文件夹中查找最新文件

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

Stack Overflow用户
提问于 2014-02-21 13:39:36
回答 1查看 3.7K关注 0票数 1

我想找到最新的文件,一个特定的文件夹。

代码语言:javascript
运行
复制
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

这将列出电子表格中的所有文件。在不使用排序的情况下,是否有更好的方法可以获取最新的文件名并将其赋值给变量?

*理想情况下,我希望在不需要列出它们的情况下找到该文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-21 14:51:16

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

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

代码语言:javascript
运行
复制
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

如果这有帮助的话请告诉我们。:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21936036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档