2017-07-14 2 views
0

Ich habe etwas Code aus dem Internet gezogen, um die neueste Datei in einem Ordner zu öffnen, was gut zu funktionieren scheint. Später im Code jedoch fügte ich eine zusätzliche Zeile zu SET hinzu, die dieselbe, letzte Datei, die geöffnet wurde. Der Workbook-Subscip ist außerhalb der Reichweite, wenn ich das versuche und ich denke, dass es etwas mit der Syntax zu tun hat? Müssen Sie weitere Zitate in den Namen des Arbeitsbuchs aufnehmen, irgendwelche Ideen?VBA-Index außerhalb des Bereichs für den Namen der Arbeitsmappe

Der 'Pfad' und 'latestFile' Variablen scheinen richtig in

Dim path$, file$, latestFile$ 
Dim LatestDate As Date, LMD As Date 
Dim D As worksheet, dash As worksheet 

'open latest file 
path = "R:\Dept\" 
If Right(path, 1) <> "\" Then path = path & "\" 

file = Dir(path & "*.xls", vbNormal) 

If Len(file) = 0 Then 
    MsgBox "No files were found in the folder", vbExclamation 
End If 

Do While Len(file) > 0 
    LMD = FileDateTime(path & file) 
    If LMD > LatestDate Then 
     latestFile = file 
     LatestDate = LMD 
    End If 
    file = Dir 
Loop 


Application.DisplayAlerts = False 
Workbooks.Open path & latestFile 
Application.DisplayAlerts = True 

Set dash = Workbooks("dashboard.xlsm").Worksheets("D data") 
Set D = Workbooks(path & latestFile).Worksheets("D Data") 'error here 

Antwort

0

Verwenden Sie einfach den Namen zu lesen:

Set D = Workbooks(latestFile).Worksheets("D Data") 

Aber Reiniger, dies zu tun:

Application.DisplayAlerts = False 
Set D = Workbooks.Open(path & latestFile).Worksheets("D Data") '<< edit 
Application.DisplayAlerts = True 
+0

Oh ja, ich habe es schon mal so geschrieben gesehen, definitiv sauberer - aber jetzt bekomme ich einen "type mismatch" Fehler? 'path' und 'latestFile' sind Strings, ist das koscher? – mrod

+0

tatsächlich löste mein erster Vorschlag mein Problem, also werde ich das verwenden, danke! – mrod

Verwandte Themen