Как изменить формат текущего абзаца без использования выделения - PullRequest
1 голос
/ 16 июня 2019

У меня есть код ниже без использования Selection.

Sub Format paragraph()

Dim wdDoc As Document

    With wdDoc.Range.Find 
       .Font.Size = 12
       .Text = "?" 
       .Execute 
    End With
End Sub

Когда найден символ с размером шрифта = 12, как я могу изменить формат текущего абзаца? например:

wdDoc.Paragraph(current).Font.Size = 14

wdDoc.Paragraph(current).Font.Color = wdBlue

Спасибо за любую помощь.

1 Ответ

2 голосов
/ 17 июня 2019

Хитрость заключается в работе с конкретным объектом Range, который можно использовать для доступа к его «родительскому» абзацу.При успешном выполнении Find.Execute искомый Range содержит найденный элемент (аналогично тому, как выбор переходит к найденному элементу).Например:

Sub Format paragraph()
  Dim rng as Range, para as Paragraph
  Dim wdDoc As Document

  Set wdDoc = ActiveDocument. 'Missing in code in question...
  Set rng = wdDoc.Content 'Content returns the Range
    With rng.Find 
       .Font.Size = 12
       .Text = "?" 
       If .Execute = True Then
         Set para = rng.Paragraphs(1)
         para.Font.Size = 14
         para.Font.Color = wdBlue
       End If
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...