2009-06-08 2 views
1

Ich habe einige Word-Dokumente, die Platzhalter URLs in ihnen haben. Die URLs sind etwas wie "http://<URL>/service.svc". Word hat festgestellt, dass diese eine gültige URL sein müssen, und wenn die Felder aktualisiert werden, ersetzen Sie sie durch "Fehler! Hyperlink-Referenz nicht gültig".Recover URL von MS Word-Feldern mit "Fehler! Hyperlink-Referenz nicht gültig"

Wenn ich mit der Maus über diesen Fehlertext gehe, erscheint ein Popup-Tooltipp mit dem Originaltext. Gibt es eine Möglichkeit, den Originaltext zu extrahieren? Das Dokument ist über 80 Seiten lang. Sicherlich muss es einen programmatischen Weg geben, dies zu tun?

Ich habe den folgenden Code versucht, aber es scheint nicht die Hyperlinks in Frage zu finden.

 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 

Wenn in dem obigen Codebeispiel Sie die Zeile entfernen, die, wenn das Element testet IsObjectValid es mit einer Last von Hyper-Link kommt zurück Angabe „Objekt wurde gelöscht“. Ich gehe davon aus, dass dies der (per Wort) gebrochene "Hyperlink" sein könnte. Wie bekomme ich meinen Text zurück?

Hinweis: Dieses Dokument wurde gespeichert und geschlossen, so dass Ctr + z keine Option ist.

Die Informationen sind dort drin, wie bekomme ich es?

Antwort

1

Haben Sie versucht, die Datei mit Notepad zu öffnen und nach http zu suchen? Das funktioniert für mich.

Sie können auch ein Programm wie "Strings" verwenden, um alle Textfolgen aus der Word-Datei zu erhalten. Siehe http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx

+0

Das ist, was ich am Ende tun (Notepad). Ich hatte nur gehofft, dass es einen Weg geben würde, um den Fehler, den das Wort geschaffen hatte, wieder rückgängig zu machen, was es sein sollte. Ich bin immer zu vorsichtig mit zu viel menschlichem Eingreifen, da uns Menschen bekannt sind, Fingerprobleme und ähnliches zu haben. – Gineer

+0

Ich würde immer noch gerne wissen, ob es eine echte programmatische Antwort darauf gibt, weil ich sicher bin, dass dies nicht das letzte Mal sein wird, dass dies passieren wird. – Gineer

0

Wie wäre:

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