2009-06-08 8 views
1

J'ai des documents Word qui contiennent des URL de support. Les URL sont quelque chose comme "http://<URL>/service.svc". Word a supposé que ces URL doivent être valides et lorsque les champs sont mis à jour, remplacez-les par "Error! Hyperlink reference not valid".Récupérer l'URL à partir des champs MS Word affichant "Erreur! La référence de lien hypertexte n'est pas valide"

Lorsque je souris sur ce texte d'erreur, le mot apparaît dans une info-bulle affichant toujours le texte d'origine. Y a-t-il un moyen d'extraire le texte original? Le document compte plus de 80 pages. Sûrement il doit y avoir une manière programmatique de faire ceci?

J'ai essayé le code suivant, mais il ne semble pas trouver les liens hypertexte en question.

 For Each oHyperlink In ActiveDocument.Hyperlinks 
     If IsObjectValid(oHyperlink) Then 
      If Len(oHyperlink.Address) > 0 Then 
       If Mid(oHyperlink.Address, 8, 5) = "<ULR>" Then 
        oHyperlink.TextToDisplay = oHyperlink.Address 
        oHyperlink.Range.Font.Color = wdColorBlue 
        oHyperlink.Range.Font.Underline = wdUnderlineSingle 
        oHyperlink.Range.Font.UnderlineColor = wdColorBlue 
       End If 
      End If 
     End If 
    Next oHyperlink 

Si dans l'exemple de code ci-dessus vous supprimez la ligne qui teste si l'élément IsObjectValid il revient avec une charge de lien hypertexte indiquant « objet a été supprimé ». Je suppose que cela pourrait être la rupture (par mot) "Hyperliens". Comment récupérer mon texte?

Remarque: Ce document a été enregistré et fermé afin que Ctr + z ne soit pas une option.

L'information est là, comment l'obtenir?

Répondre

1

Avez-vous essayé d'ouvrir le fichier avec le Bloc-notes et de rechercher http? Cela fonctionne pour moi.

Vous pouvez également utiliser un programme comme "chaînes" pour obtenir toutes les chaînes de texte à partir du fichier Word. Voir http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx

+0

C'est ce que je fini par faire (Bloc-notes). J'espérais juste qu'il y aurait un moyen de rétablir par programme le vrillage que ce mot a créé à ce qu'il était censé être. Je me méfie toujours de trop d'intervention humaine, puisque nous, les humains, sommes connus pour avoir des problèmes de doigts, etc. – Gineer

+0

J'aimerais toujours savoir s'il y a une vraie réponse programmatique à cela, parce que je suis sûr que ce n'est pas la dernière fois que cela arrivera. – Gineer

0

Que diriez-vous:

For Each oHyperlink In ActiveDocument.Hyperlinks 
    set rng = oHyperlink.Range 
    rng.Collapse wdCollapseStart 
    rng.text = oHyperlink.TextToDisplay 
    oHyperlink.Range.Delete 
Next oHyperlink 
Questions connexes