Convirtiendo patrones en hipervínculos
Estoy tratando de reemplazar todas las instancias de un patrón con un hipervínculo derivado del patrón.
El patrón tiene la siguiente forma 123 PALABRA 4568, donde PALABRA es siempre la misma pero los números (y la cantidad de números) cambian. Por ejemplo, 1948 PALABRA 12, 231 PALABRA 3948, 92 PALABRA 1029.
El hipervínculo depende del número, por ejemplo, para 1948 PALABRA 12 sería algo como www.palabra.com/1948/12.html.
Usando comodines, puedo encontrar todas las instancias del patrón y reemplazarlas con un hipervínculo solo a word.com:
Sub InsertLinksTB()
Set Rng = ActiveDocument.Range
With Rng.Find
SearchString = "[0-9]{1,9} PALABRA [0-9]{1,9}"
.MatchWildcards = True
Do While .Execute(findText:=SearchString, Forward:=False) = True
Link = "www.palabra.com"
ActiveDocument.Hyperlinks.Add Anchor:=Rng, _
Address:=Link, _
SubAddress:="", ScreenTip:="", TextToDisplay:=Rng.Text
Rng.Collapse wdCollapseStart
Loop
End With
End Sub
No puedo descifrar qué hacer con SubAddress para generar el hipervínculo completo para cada instancia del patrón, dada la utilización de comodines.
davy.ai
Para generar el hiperenlace completo para cada instancia del patrón utilizando los caracteres comodín en VBA, puedes utilizar el siguiente código:
En este código, primero extraemos los dos números del patrón utilizando la función
Split
. Luego, creamos la dirección del hiperenlace concatenando los números extraídos con las partes fijas de la dirección ("https://www.palabra.com/"
y".html"
). Finalmente, agregamos el hiperenlace al rango seleccionado utilizando el métodoHyperlinks.Add
.Esto debería reemplazar cada instancia del patrón con el hiperenlace correspondiente.