Есть ли способ выделить выделенный текст в документе MS Word с помощью VBA, если это слово НЕ повторяется? - PullRequest
0 голосов
/ 10 апреля 2020

Я использую скрипт VBA (кстати, благодаря @MacroPod), чтобы найти дубликаты выделенного текста во всем документе и сделать их жирным и красным. - Я просто создал сочетание клавиш для сценария, чтобы упростить этот процесс.

Я хочу обновить этот сценарий таким образом, чтобы он позволил мне увидеть, правильно ли указаны в конце определенные источники, на которые есть ссылки в тексте. Есть ли способ обновить скрипт, чтобы мне пришлось по-разному менять формат выделенного текста (например, сделать его розовым) , если , чтобы это слово больше не повторялось?

Вот сценарий, который у меня сейчас есть:

Sub MakeBold()
Application.ScreenUpdating = False
With ActiveDocument.Range
  With .Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Replacement.Font.Bold = True
    .Replacement.Font.ColorIndex = wdRed
    .Text = Selection.Text
    .Replacement.Text = "^&"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .Execute Replace:=wdReplaceAll
  End With
End With
Application.ScreenUpdating = True
End Sub

Спасибо за потраченное время!

Оставайтесь в безопасности !!

1 Ответ

1 голос
/ 11 апреля 2020

Если бы вы использовали инструменты ссылок Word, это не было бы проблемой. Тем не менее, попробуйте:

Sub Demo()
Application.ScreenUpdating = False
Dim i As Long
With ActiveDocument.Range
  With .Find
    .ClearFormatting
    .Text = Selection.Text
    .Forward = True
    .Wrap = wdFindStop
    .Execute
  End With
  Do While .Find.Found
    i = i + 1
    .Collapse wdCollapseEnd
    .Find.Execute
  Loop
  With .Find
    .Replacement.Text = "^&"
    .Replacement.ClearFormatting
    .Replacement.Font.Bold = True
    If i = 1 Then
      .Replacement.Font.ColorIndex = wdPink
    Else
      .Replacement.Font.ColorIndex = wdRed
    End If
    .Wrap = wdFindContinue
    .Format = True
    .Execute Replace:=wdReplaceAll
  End With
End With
Application.ScreenUpdating = True
MsgBox i & " instances found."
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...