2010-07-28 12 views
9

¿Existe una macro, código VBA o VBScript que pueda escribir para editar las direcciones URL de todos los hipervínculos en mi documento de Word? O Word 97-2003 o formato docx.¿Cómo editar mediante programación todos los hipervínculos en un documento de Word?

+0

¿Qué clase de ediciones Qué quieres hacer? ¿Desea pasar por cada hipervínculo o hacer el mismo cambio en cada uno de ellos? –

+0

Básicamente quiero hacer un reemplazo en cada hipervínculo. El nombre del servidor de archivos cambió. – jinsungy

Respuesta

10
Dim doc As Document 
Dim link, i 
'Loop through all open documents. 
For Each doc In Application.Documents 
    'Loop through all hyperlinks. 
    For i = 1 To doc.Hyperlinks.Count 
     'If the hyperlink matches. 
     If LCase(doc.Hyperlinks(i).Address) = "http://www.yahoo.com/" Then 
      'Change the links address. 
      doc.Hyperlinks(i).Address = "http://www.google.com/" 
      'Change the links display text if desired. 
      doc.Hyperlinks(i).TextToDisplay = "Changed to Google" 
     End If 
    Next 
Next 

Aquí hay un enlace a toda la Hyperlink Methods and Properties

+0

Funcionó a la perfección. Gracias. – jinsungy

+0

¡Me ayudó también, gracias! –

+1

Esto no funciona con imágenes con hipervínculos =/¿Sabe cómo obtenerlos? –

0

Esto me ayudó muchísimo. El usuario había abierto documentos de Word que contenían hipervínculos a través de su disco mapeado en lugar de ir en el largo camino a través de la red. Cientos de documentos se guardarán!

utilicé mediados de función():

Sub FixMyHyperlink() 

    Dim doc As Document 
    Dim link, i 

    'Loop through all open documents. 
    For Each doc In Application.Documents 
     'Loop through all hyperlinks. 
     For i = 1 To doc.Hyperlinks.Count 
      'If the hyperlink matches. 
      If LCase(doc.Hyperlinks(i).Address) Like "*partOfHyperlinkHere*" Then 
       'Change the links address. Used wildcards (*) on either side. 
       doc.Hyperlinks(i).Address = Mid(doc.Hyperlinks(i).Address, 70,20)  ' 
       'Change the links display text if desired. 
       'doc.Hyperlinks(i).TextToDisplay = "Oatmeal Chocolate Chip Cookies" 
      End If 
     Next 
    Next 
End Sub 
Cuestiones relacionadas