VBA-文件对话框vs抓取目录中的最新文件?

VBA-文件对话框vs抓取目录中的最新文件?,vba,Vba,我目前提供了一个文件对话框,允许用户从预定义的目录中选择所需的文件。按预期工作;我只是想减少步骤/互动 这些文件是简单的带有时间戳的日志文件,其中许多在目录中。我不知道实际的文件名,但我知道所需的文件将始终是该目录中的最新文件 有没有办法从已知目录中选择具有最新日期/时间的文件名 谢谢 我在这里找到了一个很好的方法: 函数NewestFile() 将文件名设置为字符串 Dim MostRecentFile作为字符串 Dim MostRecentDate作为日期 Dim FileSpec作为字

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

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

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

  • 谢谢
我在这里找到了一个很好的方法:

函数NewestFile()
将文件名设置为字符串
Dim MostRecentFile作为字符串
Dim MostRecentDate作为日期
Dim FileSpec作为字符串
'指定文件类型(如果有)
FileSpec=“***”
'指定目录
Directory=“C:”
FileName=Dir(目录和文件规范)
如果文件名为“”,则
MostRecentFile=FileName
MostRecentDate=FileDateTime(目录和文件名)
文件名“”时执行此操作
如果FileDateTime(目录和文件名)>MostRecentDate,则
MostRecentFile=FileName
MostRecentDate=FileDateTime(目录和文件名)
如果结束
FileName=Dir
环
如果结束
NewestFile=MostRecentFile
端函数
`
一些小的调整以适应我的需要;按需要工作。

有志者事竟成。查找如何获取文件的创建日期,然后迭代文件夹,找到最年轻的文件,然后仍然提示用户进行确认-这样用户仍然可以自己定位文件,然后当(而不是如果;当)您认为“它将始终是该目录中最新的文件”的假设被打破时,你不必重写任何东西。照目前的情况看,你的问题如果按表面回答的话,答案是肯定的/否定的。。这使得一个相当无聊的问答(FWIW答案是“是”)。如果你想问“如何获取给定目录中的最新文件”,那么你的问题要么是重复的,要么就是过于宽泛,因为你没有提供解决问题的尝试,也没有描述这种尝试是如何不起作用的。@Mat,是的,我想我应该问“如何”执行该任务。查看您提供的链接。
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