Con esta macro abres todos los archivos txt de todas las carpetas que están contenidas en la carpeta específica.
Dim j
Dim rutas As New Collection
Sub carpetasysub()
'Por.Dante Amor
'lista archivos de una carpeta y todas las subcarpetas y todos sus archivos
Sheets("Hoja2").Select
pPath = "C:\"
ext = "txt"
'On Error Resume Next
Set n = CreateObject("shell.application")
carpeta = n.browseforfolder(0, _
"Selecciona el Directorio Inical", 0, _
pPath).items.Item.Path
If carpeta = "" Then Exit Sub
pPath = carpeta & "\"
uf = Range("C" & Rows.Count).End(xlUp).Row
If uf = 1 Then uf = 2
Range("A2:C" & uf).Clear
j = 2
rutas.Add carpeta
Call agregadir(pPath)
j = 2
For Each sd In rutas
arch = Dir(sd & "\*." & ext)
Range("B" & j) = sd
Do While arch <> ""
Range("C" & j) = arch
Set l2 = Workbooks.Open(sd & "\" & arch)
'En este parte tienes que poner qué vas a hacer
'Copiar la hoja o copiar celdas
'Y en dónde lo vas a pegar
arch = Dir
j = j + 1
Loop
Next
Set rutas = Nothing
Columns("A:C").EntireColumn.AutoFit
MsgBox "Fin, buscar archivos", vbInformation, "Directorios"
End Sub
Sub agregadir(lpath)
'Agrega directorios
'Por.Dante Amor
Dim SubDir As New Collection
If Right(lpath, 1) <> "\" Then lpath = lpath & "\"
DirFile = Dir(lpath & "*", vbDirectory)
Do While DirFile <> ""
'Agrega subdirectorios a collection
If DirFile <> "." And DirFile <> ".." Then _
If ((GetAttr(lpath & DirFile) And vbDirectory) = 16) Then _
SubDir.Add lpath & DirFile
DirFile = Dir
Loop
For Each sd In SubDir
Range("A" & j) = sd
j = j + 1
rutas.Add sd
Call agregadir(sd)
Next
End Sub
En la macro puse estos comentarios
'En este parte tienes que poner qué vas a hacer
'Copiar la hoja o copiar celdas
'Y en dónde lo vas a pegar
Ahí tienes que poner lo que quieres hacer.
La macro te escribe en la "Hoja2" la carpeta, la subcarpeta y el archivo txt, en las columnas a, b y c.
Tienes dudas de lo que falta avísame, qué quieres copiar y en dónde lo quieres pegar.
Saludos. Dante Amor
Si es lo que necesitas recuerda valorar la respuesta.