2017-03-01 14 views
1

フォルダ内のすべてのサブフォルダをループして、ファイルのすべての名前をコンパイルしようとしています。私は少しのトラブルがありますが、私はこのコードを1つのフォルダをループしてファイル名をコンパイルするマクロから変更しました。大変ありがとうございました!次のサイトで答えを見つけることがMS Excel VBA - 宣言されたフォルダのサブフォルダ内のファイル名を取得

Sub FindFiles() 

Cells(1, 1).Select 

Dim F As String 
Dim G As String 

F = Dir("C:\Users\z003nttv\Desktop\Folder\" & "*") 
Do While Len(F) > 0 

Do While Len(G) > 0 
G = Dir(F & "*.*") 
ActiveCell.Formula = G 
ActiveCell.Offset(1, 0).Select 
G = Dir() 
Loop 
F = Dir() 
Loop 

End Subの

答えて

1

リンクを投稿する前にこのコードを作成していましたが、私の仕事を投稿するのに2番目の考えがありました。だからあなたが投稿したリンクをチェックアウトしました。私が投稿したかったコードは簡潔です&は、はるかに良い点を解決すると思います。したがって、ここでは、

ステップ1.参考

References needed for this code

ステップ2に行きます。コード。

Sub FindFiles() 
Dim fso As FileSystemObject 
Dim Folder As Folder 
Dim Files As Files 
Dim path, s As String 

'' Input Path : Please change as needed 
path = Sheets("Sheet1").Cells(1, 2).Value 

Set fso = New FileSystemObject 
Set Basefolder = fso.GetFolder(path) 
Set SubFolders = Basefolder.SubFolders 
Dim i As Integer 
i = 1 
For Each Folder In SubFolders 
    Set Files = Folder.Files 
    For Each File In Files 
     With Sheets("Sheet1") 
     .Cells(i, 1).Value = Folder 
     .Cells(i, 2).Value = File 
     i = i + 1 
    Next File 
Next Folder 
End Sub 
関連する問題