Hipervinculos en excel

Hola bueno días, tengo una inquietud como puedo hacer para modificar en masa una buena cantidad de hipervínculos que tengo en un libro lo que necesito es modificar la celda destino por ejemplo si tengo el hipervínculo que al darle click pase a la celda F10 del al hoja 1 que en lugar de F10 sea X21 son como 40 hipervínculos en la hoja se podrá hacer alguna macro para esto, conseguí esta macro buscando en la web pero no le encuentro como decirle que me modifique solo los rango de la celda espero me comprendas aquí esta la macro. Es de otro experto pero creo que no esta activo espero me ayudes saludos.
Sub ChangeAddress()
' Store the old hyperlink so you can get its properties.
'
Set oldlink = Worksheets("cc").Cells(1, 1).Hyperlinks(1)
' Store the old Anchor and SubAddress properties. Note that the
' oldAddress line is optional and that the oldAnchor line must
' be preceded by "Set" since it is using a Range.
'
Set oldAnchor = oldlink.Range
oldAddress = oldlink.Address
oldSubAddress = oldlink.SubAddress
' Create the new link using the new Address and the original
' Anchor and SubAddress.
Set newLink = Worksheets("Sheet1").Hyperlinks.Add( _
Anchor:=oldAnchor, _
Address:=oldAddress, _
SubAddress:=oldSubAddress)
End Sub
Respuesta
1
Pienso que no necesitas hacer algo tan complejo para lo que me dices. Tal vez con algo como esto:
Sub Macro_Links()
    Dim c As Range
    For Each c In Range("A1:L100")
        If c.Hyperlinks(1).SubAddress = "Hoja1!F10" Then
              c.Hyperlinks(1).SubAddress = "Hoja1!X21"
        End If

    Next c

End Sub
La macro hace lo siguiente:
1. Evalúa todas las celdas en el rango A1:L100, puedes modificar este rango cambiando la macro en la línea 3 .
2. Si la celda tiene como hipervínculo la celda F10 de la Hoja1 (también puedes cambiar este dato), entonces lo reemplaza por la celda X21 de la misma Hoja1.
Espero que esto te sirva. Si tienes alguna inquietud adicional no dudes en pedir aclaración.
Hey me parece una buena solución, pero me nace otra pregunta como hago si los hipervínculos están direccionados a hojas distintas como un menu, por consiguiente son cambiantes entonces me tendría que tomar el valor de la celda activa y reemplazar los datos el nuevo dato como por ejemplo si tengo esto
Hoja1!F10
Hoja2!F10
Hoja3!F10
Hoja4!F10
Y quiero esto
Hoja1!X20
Hoja2!X20
Hoja3!X20
Hoja4!X20
¿Cómo se puede hacer esto?
Saludos y gracias por tu pronta repuesta
Pienso que podemos manejarlo como un texto. Entonces tendrías que manejarlo así:
Sub Macro_Links()
    Dim c As Range
    For Each c In Range("A1:L100")
        x = c.Hyperlinks(1).SubAddress
        y = Right(c, 3)
        z = Left(c, 6)
        If y = "F10" Then
              c.Hyperlinks(1).SubAddress = z & "X20"
        End If
End Sub

Revisa si esto es válido entonces.
Gracias por tu pronta y acertada solución esta perfecta, aunque le hice unos cambios para que funcionara pero valió la pena. Saludos cuidate aquí te pongo el resultado por si alguien más lo necesita.
Sub Macro_Links()
Dim c As Range
For Each c In Range("C11:C14")
   X = c.Hyperlinks(1).SubAddress
   y = Right(X, 2)
   z = Left(X, 6)
If y = "F10" Then
  c.Hyperlinks(1).SubAddress = z & "X20"
End If
Next c
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas