If you want to search through only the top level directories under the E:
root, use
Sub CopyTheFiles()
Dim FSO As Scripting.FileSystemObject
Dim RD As Scripting.Folder
Dim FF As Scripting.Folder
Dim F As Scripting.File
Set FSO = New Scripting.FileSystemObject
Set RD = FSO.GetDrive("E").RootFolder
For Each FF In RD.SubFolders
Set F = FF.Files("TheFileName.xls") '<<< CHANGE FILE NAME
F.Copy Destination:="C:\Whatever\" & F.Name '<<< CHANGE FOLDER
Next FF
End Sub
If you want to look through EVERY folder and subfolder under the E: root,
use
Sub CopyTheFiles()
Dim FSO As Scripting.FileSystemObject
Dim RD As Scripting.Folder
Dim FF As Scripting.Folder
Dim F As Scripting.File
Set FSO = New Scripting.FileSystemObject
Set RD = FSO.GetDrive("G").RootFolder
For Each FF In RD.SubFolders
DoOneFolder WhatFolder:=FF
Next FF
End Sub
Sub DoOneFolder(WhatFolder As Scripting.Folder)
Dim F As Scripting.File
Dim FF As Scripting.Folder
Set F = WhatFolder.Files("TheFileName.xls")
F.Copy Destination:="C:\Whatever\" & F.Name
For Each FF In WhatFolder.SubFolders
DoOneFolder WhatFolder:=FF
Next FF
End Sub
See also
http://www.cpearson.com/Excel/RecursionAndFSO.htm for example code.
--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)