eccoti un esempio di come lo farei io (a<ggiungi l riferimento a Microsoft Scripting RunTime):
codice:
Sub Esegui()
Dim FSO As Scripting.FileSystemObject, Fold As Scripting.Folder, strNamePadre As String
Set FSO = New Scripting.FileSystemObject
strNamePadre = "c:\"
Set Fold = FSO.GetFolder(strNamePadre)
Call GuardaFileSCartelle(Fold)
Set Fold = Nothing
Set FSO = Nothing
End Sub
Sub GuardaFileSCartelle(oFold As Scripting.Folder)
Dim oSFold As Scripting.Folder, oFile As Scripting.File
For Each oFile In oFold.Files
If LCase(Right(oFile.Name, 3)) = "xls" Then Call EseguiExcel(oFile.Path)
Next
For Each oSFold In oFold.SubFolders
Call GuardaFileSCartelle(oSFold)
Next
End Sub
Sub EseguiExcel(strPathFile As String)
Dim oWkb As Workbook
Set oWkb = Application.Workbooks.Open(strPathFile)
'fai quello che devi fare
oWkb.Close
Set oWkb = Nothing
End Sub