2017-09-29 8 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 
関連する問題