使用部分变量名称检索上次修改的文件

时间:2017-09-29 11:38:52

标签: excel vba excel-vba

我们有一个自动下载数据并将其放入Excel和其他工作表的系统。我正在尝试为主电子表格编写一个宏,该电子表格检索某个文件的最新版本以进行编辑,复制并粘贴到主表格中。

我无法检索文件,因为文件名包含日期。

我对VBA很陌生,我仍然只是将一些代码拼凑在一起以获得工作,但我找不到我想要的东西。

文件名例如是'ML0003 - 每日订单输入信息 - 170927' 最后6个数字代表每次的日期和变化。

到目前为止,这是我的代码:

Dim dtTestDate As Date
    Dim sStartWB As String

    Const sPath As String = "D:\Berry\AddIn\Testing\"
    Const dtEarliest = #1/1/2010#

    dtTestDate = Date
    sStartWB = ActiveWorkbook.Name

    While ActiveWorkbook.Name = sStartWB And dtTestDate >= dtEarliest
        On Error Resume Next
        Workbooks.Open sPath & "ML0003 - Daily Order Entry Information - " & " ****** " & ".xls"
        dtTestDate = dtTestDate - 1
        On Error GoTo 0
    Wend

    If ActiveWorkbook.Name = sStartWB Then MsgBox "Earlier file not found."

我认为asterix会允许任何角色,但这似乎不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要使用Dir函数使用通配符查找文件,如下所示:

Dim sFilename As String
While ActiveWorkbook.Name = sStartWB And dtTestDate >= dtEarliest
    sFilename = Dir(sPath & "ML0003 - Daily Order Entry Information - *.xls*")
    If sFilename <> "" Then Workbooks.Open sPath & sFilename
Wend