2016-05-12 10 views
0

私はファイルC:\ Users \ fldの全体のパスをインポートしたいが、今日の最近のファイルだけをインポートする。最後に保存したファイルのパスをExcelにインポートするにはどうすればいいですか?

お願いします。パスをインポートする私のVBA以下

Sub test() 
     Dim fso As FileSystemObject 
     Dim oSourceFolder As Scripting.Folder 
     Dim oSubFolder As Scripting.Folder 
     Dim oFile As Scripting.File 
     Dim oFolder As Scripting.Folder 
     Dim strFolderName As String 
     Dim i As Long 
     Set fso = CreateObject("Scripting.FileSystemObject") 
     Cells(1, 1).Value = "fld" 
     strFolderName= "C:\Users\fld" 

     i = 2  
     Range("A2").Select 
     ActiveCell = Range("A2") 
     Set oSourceFolder = fso.GetFolder(strFolderName) 
     For Each oFolder In oSourceFolder.SubFolders 
       For Each oFile In oFolder.Files 
       Cells(i, 1).Value = Left(oFile.ParentFolder)     
          i = i + 1 
       Next oFile 
     Next oFolder 
+0

を)を作成し、スプレッドシートの列Aに書き込みますか? – Dave

+0

私はあなたがここで解決策を見つけることができると信じています:http://stackoverflow.com/questions/17847457/getting-file-last-modified-date-explorer-value-not-cmd-value – Ralph

答えて

0

この試してみてください:あなたは(サブフォルダを含む特定のフォルダ構造内のすべてのファイルのファイルパスをインポートすることを意味するか

Sub test() 
    Dim fso As FileSystemObject 
    Dim oSourceFolder As Scripting.Folder 
    Dim oSubFolder As Scripting.Folder 
    Dim oFile As Scripting.File 

    Dim oFolder As Scripting.Folder 
    Dim strFolderName As String 
    Dim i As Long 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    strFolderName = "C:\Users\fld" 
    i = 2 
    Range("A2").Select 
    ActiveCell = Range("A2") 

    Dim dt As Date 
    Dim pathLastUpdatePath As String 

    'Find last Date of file----------------------------------------' 
    'Find file that have last DateTime Update in parent folder 
    Set oFolder = fso.GetFolder(strFolderName) 
    For Each oFile In oFolder.Files 
     fileModDate = oFile.DateLastModified 
     If fileModDate > dt Then 
      dt = fileModDate 
      pathLastUpdatePath = oFile.Path 
     End If 
    Next oFile 

    'Find file that have last DateTime Update in Sub folders 
    Set oSourceFolder = fso.GetFolder(strFolderName) 
    For Each subFolder In oSourceFolder.SubFolders 
     For Each sFile In subFolder.Files 
      fileModDate = sFile.DateLastModified 
      If fileModDate > dt Then 
       dt = fileModDate 
       pathLastUpdatePath = sFile.Path 
      End If 
     Next sFile 
    Next subFolder 

    'Find and Show all files are modified in the same day----------------------' 
    Cells(1, 1).Value = "File with DateLastModified" 
    Cells(1, 2).Value = "DateTime File" 

    Set oFolder = fso.GetFolder(strFolderName) 
    For Each oFile In oFolder.Files 
     fileModDate = oFile.DateLastModified 
     If DateValue(fileModDate) = DateValue(dt) Then 
      Cells(i, 1).Value = oFile.Path 
      Cells(i, 2).Value = fileModDate 
      i = i + 1 
     End If 
    Next oFile 

    Set oSourceFolder = fso.GetFolder(strFolderName) 
    For Each subFolder In oSourceFolder.SubFolders 
     For Each sFile In subFolder.Files 
      fileModDate = sFile.DateLastModified 
      If DateValue(fileModDate) = DateValue(dt) Then 
       Cells(i, 1).Value = sFile.Path 
       Cells(i, 2).Value = fileModDate 
       i = i + 1 
      End If 
     Next sFile 
    Next subFolder 
End Sub 
+0

ありがとうございます!これは最後のファイルをインポートします。また、同じ日に多くのファイルをインポートした場合、私たちは何ができますか?私は立ち往生しています:s – mitsuki

+0

同じ日に多くのファイルをインポートした場合にも機能します。 –

+0

最後に修正されたファイルのみが表示されます:s – mitsuki

関連する問題