2017-07-04 52 views
0

こんにちは、私は、フォルダ内の最新のファイル(変更日)を開こうとしています。コードはループを使用してファイルを通過し、最新の変更を検出しますが、 'Workbooks.Open strFilename'を使用してファイルを開くときには、ファイル(既に「最も若い」ファイルとして識別されています) 。見つからないエラーメッセージがファイル「若いテスト」と言うように、これは私には意味がありません - ファイル名が見つかりませんでしたが、それは明らかにループの中にそれを見つけフォルダ内の最新のファイルを開くVBA

Sub copynewdata() 

Dim FileSys As FileSystemObject 
Dim objFile As File 
Dim myFolder 
Dim strFilename As String 
Dim dteFile As Date 

Dim Ref As Object, CheckRefEnabled% 
CheckRefEnabled = 0 
With ThisWorkbook 
    For Each Ref In .VBProject.References 
     If Ref.Name = "Scripting" Then 
      CheckRefEnabled = 1 
      Exit For 
     End If 
    Next Ref 
    If CheckRefEnabled = 0 Then 
     .VBProject.References.AddFromGUID "{420B2830-E718-11CF-893D-00A0C9054228}", 1, 0 
    End If 
End With 

'set path for files - change for your folder 
Const myDir As String = "\\C:\Test" 

'set up filesys objects 
Set FileSys = New FileSystemObject 
Set myFolder = FileSys.GetFolder(myDir) 

'loop through each file and get date last modified. If largest date then store Filename 
dteFile = DateSerial(1900, 1, 1) 
For Each objFile In myFolder.Files 
    If objFile.DateLastModified > dteFile Then 
     dteFile = objFile.DateLastModified 
     strFilename = objFile.Name 
    End If 
Next objFile 
Workbooks.Open strFilename 
'Set Source_Workbook = Workbooks(strFilename).Open(Target_Path) 

Set FileSys = Nothing 
Set myFolder = Nothing 

End Subの。

誰もがstrFilenameではこの

答えて

1

を支援することができ、あなたは、ファイルの名前を持っている - ?しかし、パスなしのオープンを変更します。 -command to

Workbooks.Open myDir & "\" & strFilename

+0

非常に感謝します。 – Ollie

関連する問題