没有标准名称的打开文件

时间:2019-05-23 04:21:40

标签: excel vba

假设我们有一个只有一个宏文件的文件夹,并且每天我们都将excel文件保存在通过邮件收到的同一文件夹中。但是,每天的文件名都会更改。我的意思是说我们通过邮件获得的文件都没有标准名称。现在,我们在同一文件夹中有两个文件。

我们可以使用宏在同一个文件夹中打开另一个以随机名称保存的文件吗?在这里,另一个文件的名称不是标准的。此外,在运行宏之后,我们还希望删除该文件。

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式获取目录中最新文件的文件名:

Option Explicit

Private Sub GetNewestFilename()
    Dim searchDirectory As String
    Dim searchPattern As String
    Dim currentFilename As String
    Dim NewestFilename As String
    Dim NewestFiledate As Date

    searchDirectory = Application.DefaultFilePath & "\"
    searchPattern = "*.xl*"

    currentFilename = Dir(searchDirectory & searchPattern, 0)
    If currentFilename <> "" Then
        NewestFilename = currentFilename
        NewestFiledate = FileDateTime(searchDirectory & currentFilename)
        Do While currentFilename <> ""
            If FileDateTime(searchDirectory & currentFilename) > NewestFiledate Then
                 NewestFilename = currentFilename
                 NewestFiledate = FileDateTime(searchDirectory & currentFilename)
            End If
            currentFilename = Dir
        Loop
    End If
    MsgBox NewestFilename

    Dim wb As Workbook
    Set wb = Workbooks.Open(searchDirectory & NewestFilename)
    ' do something
    wb.Close SaveChanges:=False
    Set wb = Nothing

    ' Kill searchDirectory & NewestFilename ' Delete the file

End Sub