如何使用Excel 2010中的VBA获取目录中最后修改的文件?

4
我希望您能用VBA在Excel 2010中完成此操作。在Excel 2003中,可以使用Application.FileSearch方法实现,但该方法已被弃用(请参见下文)。
Dim sFileName As String

sFileName = ""
With Application.FileSearch
    .NewSearch
    .LookIn = sDir
    .Filename = "*.*"
    .Execute msoSortByLastModified, msoSortOrderDescending

    If .FoundFiles.Count > 0 Then sFileName = .FoundFiles(1)

End With

有什么办法可以在Excel 2010中完成这个任务吗?
谢谢。
1个回答

7
如果使用FileSystemObject是可接受的,你可以使用这里描述的方法。
总结一下:
Dim fso As Scripting.FileSystemObject
Dim fol As Scripting.Folder
Dim fdr As Scripting.Folder
Dim fil As Scripting.File
Dim flc As Scripting.Folders

Set fso = CreateObject("Scripting.FileSystemObject")
Set fol = fso.GetFolder("YourPathName")
Set flc = fol.SubFolders

For Each fdr In flc
  For Each fil In fdr.Files
        Debug.Print fil.DateLastModified
  Next fil
Next fdr

Set fso = Nothing
Set fol = Nothing
Set flc = Nothing

谢谢Richard,非常有效。只需要遍历文件列表并维护一个具有最大DateLastModified的文件变量即可。 - Irfy
1
顺便提一下,这样做也意味着它可以与所有的Excel 2003/2007/2010(至少)兼容。 - Irfy
无法工作,他的查找不是最后修改而是最后循环。 - Senior Pomidor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接