Восстановить URL из полей MS Word, показывающих «Ошибка! Ссылка на гиперссылку недействительна» - PullRequest
1 голос
/ 08 июня 2009

У меня есть несколько текстовых документов, в которых есть URL-адреса заполнителей. URL-адреса выглядят примерно так: «/service.svc" rel="nofollow noreferrer">http:///service.svc". Word считает, что это должен быть действительный URL-адрес, и когда поля обновляются, замените их на« Ошибка! Ссылка на гиперссылку недействительна".

При наведении указателя мыши на текст ошибки появляется всплывающая подсказка, в которой все еще отображается исходный текст Есть ли способ извлечь оригинальный текст? Длина документа более 80 страниц. Наверняка должен быть программный способ сделать это?

Я попробовал следующий код, но, похоже, он не находит нужные гиперссылки.

        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

Если в приведенном выше примере кода вы удалите строку, которая проверяет, является ли элемент IsObjectValid, он возвращается с загрузкой гиперссылки с указанием «Объект был удален». Я предполагаю, что это могут быть сломанные (словом) «гиперссылки». Как мне вернуть мой текст?

Примечание. Этот документ был сохранен и закрыт, поэтому использование Ctr + z недоступно.

Информация там, как мне ее получить?

Ответы [ 2 ]

1 голос
/ 08 июня 2009

Вы пытались открыть файл с помощью Блокнота и найти http? Это работает для меня.

Вы также можете использовать программу типа "strings", чтобы получить все текстовые строки из файла Word. Смотри http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx

0 голосов
/ 28 августа 2009

Как насчет:

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