Cómo reemplazar de forma masiva los enlaces que están incrustados en palabras en celdas de Excel

1

Tengo una enorme lista de palabras que tienen enlaces. Todas las URL tienen texto que se repite. Quiero reemplazar masivamente este texto con otro. En este momento, "Reemplazar todo" solo busca entre palabras, no a través de los hipervínculos incrustados detrás de las palabras.

Por favor ayuda. Gracias.

Karolinger
fuente

Respuestas:

2

La única manera de hacer esto es con una Macro:

Public Sub ReplaceHyperlinkURL(FindString As String, ReplaceString As String)
Dim LinkURL, PreStr, PostStr, NewURL As String
Dim FindPos, ReplaceLen, URLLen As Integer
Dim MyDoc As Worksheet
Dim MyCell As Range
On Error GoTo ErrHandler

Set MyDoc = ActiveSheet
For Each MyCell In MyDoc.UsedRange
If MyCell.Hyperlinks.Count > 0 Then
 LinkURL = MyCell(1).Hyperlinks(1).Address
 FindPos = InStr(1, LinkURL, FindString)
 If FindPos > 0 Then 'If FindString is found
  ReplaceLen = Len(FindString)
  URLLen = Len(LinkURL)
  PreStr = Mid(LinkURL, 1, FindPos - 1)
  PostStr = Mid(LinkURL, FindPos + ReplaceLen, URLLen)
  NewURL = PreStr & ReplaceString & PostStr
  MyCell(1).Hyperlinks(1).Address = NewURL 'Change the URL
  End If
 End If
Next MyCell
Exit Sub
ErrHandler:
MsgBox ("ReplaceHyperlinkURL error")
End Sub

El código ReplaceHyperlinkURL debe colocarse en un módulo de código VBA. Desde una hoja de cálculo, presione Alt + F11 para abrir el Editor VBA. Luego seleccione Insertar - Módulo en el menú. Copia el código y pégalo en el módulo. A continuación, guarde el módulo.

Para ejecutar el procedimiento, cree una macro que contenga la siguiente línea y ejecute la macro en Excel. Asegúrese de reemplazar FindText con la parte de la dirección que desea buscar y ReplaceText con el texto con el que desea reemplazarlo.

Llame a ReplaceHyperlinkURL ("FindText", "ReplaceText")

Fuente

Moses
fuente
Estoy atrapado en la parte macro. No sé cómo crear la macro y ejecutarla. ¿Cómo se puede hacer esto?
Karolinger
Santo Moisés, @Moses. ¡Me salvaste la vida! Muchas gracias, hombre!
Karolinger
1
@Karolinger Me alegro de poder ayudar :)
Moses