【问题标题】:VBA - File Dialog vs Grab Newest File in Directory?VBA - 文件对话框与抓取目录中的最新文件?
【发布时间】:2017-05-25 14:21:17
【问题描述】:

我目前提供了一个文件对话框,允许用户从预定义的目录中选择所需的文件。按预期工作;我只是想减少步骤/交互。

这些文件是简单的时间戳日志文件,很多都在目录中。我不知道实际的文件名,但我知道所需的文件将始终是该目录中最新的文件。

有没有办法从已知目录中选择具有最新日期/时间的文件的文件名?

  • 谢谢!

【问题讨论】:

  • 有志者事竟成。查找如何获取文件的创建日期,然后迭代文件夹,找到最年轻的文件,然后仍然提示用户确认 - 这样用户仍然可以自己定位文件,然后当(不是如果;when)你的假设“它将总是是该目录中的最新文件”被打破,你就不必重写任何东西。
  • 就目前而言,如果以表面价值回答,您的问题有一个是/否的答案。这会产生一个相当无聊的问答(FWIW 的答案是“是”)。如果您要问“如何获取给定目录中的最新文件”,那么您的问题要么与 this question 重复,要么只是太宽泛,因为您没有提供您的尝试在解决问题时,也没有描述这种尝试是如何不起作用的。
  • @Mat,是的,我想我应该问“如何”执行该任务。查看您提供的链接。

标签: vba


【解决方案1】:

我在这里找到了一个好方法:

finding latest file in a folder and opening it (vba access)

Function NewestFile()

Dim FileName As String
Dim MostRecentFile As String
Dim MostRecentDate As Date
Dim FileSpec As String

'Specify the file type, if any
 FileSpec = "*.*" 
'specify the directory
 Directory = "C:"
FileName = Dir(Directory & FileSpec)
If FileName <> "" Then
    MostRecentFile = FileName
    MostRecentDate = FileDateTime(Directory & FileName)
   Do While FileName <> ""
        If FileDateTime(Directory & FileName) > MostRecentDate Then
             MostRecentFile = FileName
             MostRecentDate = FileDateTime(Directory & FileName)
         End If
         FileName = Dir
    Loop
 End If

 NewestFile = MostRecentFile

 End Function

` 一些小的调整以满足我的需要;按需要工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    相关资源
    最近更新 更多