2017-09-29 27 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 
相關問題