2017-09-29 24 views
3

我们有一个自动下载数据并将其放入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." 

我是assumtion下,该星号将允许任何字符出现,但这似乎并没有工作。有任何想法吗?

+0

你可能想看看正则表达式: http://analystcave.com/excel-正则表达式教程/ 也许一些其他SO成员可以告诉你一个例子,因为它绝对可行。 – peakpeak

回答

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 
相关问题