Tengo problemas con el comodín * . Quiero buscar un documento en una carpeta y devolver su ubicación. El problema es que el documento puede ser .xlsx o .pdf ; por lo tanto, quería agregar "*" al nombre para que encontrara cualquiera.
Tengo esto:
Sub Test2() Dim FSO As New FileSystemObject Dim myFolder As Scripting.Folder Dim mySubFolder As Scripting.Folder Dim myFile As File Set myFolder = FSO.GetFolder("Folder Path") Set Team3 = ThisWorkbook.Worksheets("Team 3 & 3a") Rng = Team3.Range("B4:B9") For Each batch In Rng Filename = batch & "*" For Each mySubFolder In myFolder.SubFolders For Each myFile In mySubFolder.Files If myFile.Name = Filename Then MsgBox myFile.Path Exit For End If Next Next Next End Sub El problema que tengo es que el comodín * no parece funcionar y parece interpretarlo como texto. Si reemplazo el "*" con ".pdf" , de hecho encuentra los archivos, pero lo necesitaba para buscar cualquier tipo de archivo.
Eliminé la ruta de la carpeta de arriba, pero de hecho está buscando en la carpeta correcta. El código en sí funciona, es solo el "*" que no parece funcionar.
Cualquier ayuda sería muy apreciada.
Gracias, FunThomas por ayudar con esto. No estoy seguro de cómo funciona este sitio, pero la siguiente fue la respuesta que dio.
Sub Test2() Dim FSO As New FileSystemObject Dim myFolder As Scripting.Folder Dim mySubFolder As Scripting.Folder Dim myFile As File Set myFolder = FSO.GetFolder("Folder Path") Set Team3 = ThisWorkbook.Worksheets("Team 3 & 3a") Rng = Team3.Range("B4:B9") For Each batch In Rng Filename = batch & "*" For Each mySubFolder In myFolder.SubFolders For Each myFile In mySubFolder.Files If myFile.Name Like Filename Then MsgBox myFile.Path Exit For End If Next Next Next End Sub