2

Я пытался заменить текст адресом электронной почты в середине документа Word. Если я использую только команду «Найти», то она работает нормально, и Microsoft Word находит текст, который я хотел заменить.

Проблема возникает, когда я на самом деле пытаюсь выполнить замену, а затем загадочно Word говорит мне, что текст не может быть найден (тот же текст и тот же документ), поэтому, к сожалению, замены не было сделано.

Это потому, что адрес электронной почты рассматривается как гиперссылка. Если я удаляю гиперссылку, она работает просто отлично, но это не решение для меня, потому что я пытаюсь сделать программу для использования многими людьми, и по умолчанию в Word активирована опция автоматического назначения адреса электронной почты гиперссылкой. ,

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

Для информации: я проверил это в Microsoft Office 2003 и Microsoft Office 2013. Он также не работает, поэтому это не проблема, связанная с версией, а нечто общее для всех версий Microsoft Word.

1 ответ1

2

Вы могли бы использовать VBA ...

1) Удалить все гиперссылки (оставив текст).

Sub RemoveHyperlinks()
     With ThisDocument
         While .Hyperlinks.Count > 0
            .Hyperlinks(1).Delete
         Wend
     End With
End Sub

2) Сделайте поиск и замените ...

3) Воссоздайте все гиперссылки (если у пользователя включена опция авто-гиперссылки в Word):

Sub ReformatDocument()
     Selection.WholeStory
     Selection.Document.Kind = wdDocumentNotSpecified
     Selection.Range.AutoFormat
End Sub

Кроме того, если вы хотите включить или отключить актуальную опцию автозамены для автоматических гиперссылок, вы можете использовать «Приложение».Опции.AutoFormatAsYouTypeReplaceHyperlinks ":

т.е. Application.Options.AutoFormatAsYouTypeReplaceHyperlinks = False

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .