VBA:如何打开文件夹中最近的两个excel文件

我试图打开文件夹中的最近两个Excel文件到目前为止,我打开文件夹中的最新文件,但我必须打开文件夹中的第二个最新文件。 请参考以下代码。 请build议如何打开第二个最近的文件?

Sub findingdiff() Dim FileSys, objFile, myFolder, c As Object Dim wb1 As Workbook Dim wb2 As Workbook FolderName = ("C:\Users\ashokkumar.d\Desktop\Test\do\") Set FileSys = CreateObject("Scripting.FileSystemObject") Set myFolder = FileSys.GetFolder(FolderName) dteFile = DateSerial(1900, 1, 1) For Each objFile In myFolder.Files If InStr(1, objFile.Name, ".xls") > 0 Then If objFile.DateLastModified > dteFile Then dteFile = objFile.DateLastModified strFilename = objFile.Name End If End If Next objFile 'opening of latest file in the folder Set wb2 = Workbooks.Open(FolderName & Application.PathSeparator & strFilename) End Sub 

这是解决问题的另一种方法。 创build一个sorting列表,然后处理前两个文件:

 Sub Lastest2Files() Dim rs As ADODB.Recordset Dim fs As FileSystemObject Dim Folder As Folder Dim File As File 'create a recordset to store file info Set rs = New ADODB.Recordset rs.fields.Append "FileName", adVarChar, 100 rs.fields.Append "Modified", adDate rs.Open 'build the list of files and sort Set fs = New FileSystemObject Set Folder = fs.GetFolder("C:\aatemp") For Each File In Folder.Files rs.AddNew rs("FileName") = File.Path rs("Modified") = File.DateLastModified Next rs.Sort = "Modified DESC" 'process the first 2 files rs.MoveFirst Set wb2 = Workbooks.Open(rs.fields("FileName").value) rs.MoveNext Set wb2 = Workbooks.Open(rs.fields("FileName").value) End Sub 

你可以一次完成

 Sub findingdiff() Dim FileSys, objFile, myFolder, c As Object Dim wb1 As Workbook Dim wb2 As Workbook Dim strFilename, strFilename2 FolderName = ("C:\Users\ashokkumar.d\Desktop\Test\do\") Set FileSys = CreateObject("Scripting.FileSystemObject") Set myFolder = FileSys.GetFolder(FolderName) dteFile = DateSerial(1900, 1, 1) For Each objFile In myFolder.Files If InStr(1, objFile.Name, ".xls") > 0 Then If objFile.DateLastModified > dteFile Then dteFile = objFile.DateLastModified strFilename2 = strFilename strFilename = objFile.Name End If End If Next objFile 'opening of latest file in the folder Set wb1 = Workbooks.Open(FolderName & Application.PathSeparator & strFilename) Set wb2 = Workbooks.Open(FolderName & Application.PathSeparator & strFilename2) End Sub