2017-09-29 3 views
3

Wir haben ein System, das Daten automatisch herunterlädt und sie in Excel- und andere Blätter legt. Ich versuche, ein Makro für eine Haupttabelle zu schreiben, die die letzte Version einer bestimmten Datei abruft, um sie zu bearbeiten, zu kopieren und in das Hauptblatt einzufügen.Abrufen der zuletzt geänderten Datei mit einem teilweise variablen Namen

Ich habe Probleme beim Abrufen der Datei, da die Dateinamen Datumsangaben enthalten.

Ich bin ziemlich neu in VBA und bin immer noch nur Stücke Code zusammen zu werfen, um eine funktionierende Sache zu bekommen, aber ich kann nicht genau das finden, was ich suche.

Dateiname ist zum Beispiel 'ML0003 - Tägliche Auftragseingabe-Information - 170927' Die letzten 6 Stellen repräsentieren das Datum und ändern sich jedes Mal.

Dies ist mein Code so weit:

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." 

ich unter dem assumtion war, dass der Stern dort ein beliebiges Zeichen erlauben würde, aber das scheint nicht zu funktionieren. Irgendwelche Ideen?

+0

Sie könnten Reguläre Ausdrücke aussehen wollen: http://analystcave.com/excel- regex-tutorial/ Vielleicht kann ein anderes SO-Mitglied Ihnen ein Beispiel zeigen, weil es definitiv machbar ist. – peakpeak

Antwort

1

Sie wollen die Dir Funktion verwenden, um eine Datei zu suchen, die Platzhalter verwenden, wie folgt aus:

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 
Verwandte Themen