Acceso recursivo a los archivos de la subcarpeta dentro de una carpeta

He escrito este código para acceder a los archivos de Excel dentro de una carpeta:

strPath="C:\Test\" Set objFso = CreateObject("Scripting.FileSystemObject") Set objFolder = objFso.GetFolder (strPath) Set objExcel= CreateObject("Excel.Application") objExcel.Visible= False For Each objFile In objFolder.Files If objFso.GetExtensionName(objFile.Path) = "xls" Then 

Ahora tengo que crear algunas subcarpetas y poner algunos archivos .xls en esas.

¿Qué modificación debo hacer en mi código para buscar archivos en la carpeta principal y en todas las demás subcarpetas (también hay algunas carpetas dentro de las subcarpetas)?

Este es en realidad un problema bien resuelto. Recursividad significa que crea una función de autorreferencia (una función que se llama a sí misma). En su caso, haría que la función se llame a sí misma para cada subcarpeta de la carpeta actual.

 TraverseFolders objFso.GetFolder(strPath) Function TraverseFolders(fldr) ' do stuff with the files in fldr here, or ... For Each sf In fldr.SubFolders TraverseFolders sf '<- recurse here Next ' ... do stuff with the files in fldr here. End Function 

Ejecute esto al comienzo de su script, listará todos los archivos en todas las carpetas:

 dir /S/B > AllFoldersAndFiles.txt 

luego recorre la lista de archivos. Esto funciona para mí

Recursive vb es un poco complicado.