Encontrar un nombre de archivo a partir de un texto parcial seleccionado.
Agarré el código de otra persona y probé varias funciones diferentes para adaptarlo a mis necesidades.
Utilizo un documento de Word para informes de PLC. Estoy tratando de tomar el texto seleccionado (como un número de estación, por ejemplo BM150) y encontrar un archivo a partir del texto parcial dentro de cualquier subcarpeta desde la ruta designada, y luego crear un hipervínculo hacia él.
Sub HLinkSelectedText()
Dim strPath As String
Dim StrSelection As Range
Dim sName As String
Dim fs As String
strPath = "ruta_del_archivo" 'la ruta para buscar
Set StrSelection = Selection.Range
sName = Dir$(strPath & Trim(StrSelection.Text) & ".*") 'cambiar la extensión a ".*" para cualquier archivo
fs = strPath & sName
If Not sName = "" Then
StrSelection.Hyperlinks.Add Anchor:=StrSelection, Address:=fs, TextToDisplay:=Trim(StrSelection.Text)
Else
MsgBox "No se encontró el documento correspondiente"
End If
End Sub
Esto funciona si escribo el nombre exacto del archivo y la ruta exacta del archivo, pero solo ingreso parte del nombre del archivo en el informe, y quiero que busque en varias subcarpetas.
davy.ai
Para buscar un archivo a partir de un texto parcial en cualquier subcarpeta de la ruta designada y luego vincularlo, puedes modificar el código de la siguiente manera:
Este código utiliza una función recursiva llamada
SearchForFile
para iterar a través de todos los archivos en una carpeta y sus subcarpetas hasta que encuentra un archivo con un nombre que coincida con el texto parcial. Esto te permite ingresar solo parte del nombre del archivo en el informe y buscar en múltiples subcarpetas.