Как изменить стиль некоторых текстов на стиль заголовка 1, не затрагивая остальной текст - PullRequest
0 голосов
/ 21 июня 2019

Я хочу изменить формат текста с размером шрифта = 20 и именем шрифта = "Times New Roman" на стиль "Заголовок 1"

Проблема, например, в том, что текст центрировани делая вручную, когда выбран заголовок 1, текст отправляется влево и изменяет размер шрифта, название шрифта и цвет шрифта на те, которые указаны в заголовке 1. Затем, когда текст связан с «заголовком 1», я могу снова отцентрировать и установитьте же параметры формата, что и раньше, и текст остается связанным с «Заголовком 1»

Я попытался сделать это с помощью VBA, чтобы применить то же, что и выше, ко всему тексту с размером 20 и шрифтом «Times New Roman»,но мой код ниже, похоже, влияет на другой текст в документе, даже если этот текст имеет другой размер шрифта.

Как я могу решить эту проблему?

Sub ChangeToHeading1()
Dim wdDoc As Document

Set wdDoc = ActiveDocument

    With wdDoc.Range
        .Find.ClearFormatting
        .Find.Font.Size = 20
        .Find.Replacement.ClearFormatting
        .Find.Text = ""
        .Find.Replacement.Text = ""
        .Find.Replacement.Style = ActiveDocument.Styles("Heading 1")
        .ParagraphFormat.Alignment = wdAlignParagraphCenter
        .Font.Name = "Times New Roman"
        .Font.Size = 20         
        .Find.Forward = True
        .Find.Wrap = wdFindContinue
        .Find.Format = True
        .Find.MatchCase = False
        .Find.MatchWholeWord = False
        .Find.MatchWildcards = False
        .Find.MatchSoundsLike = False
        .Find.MatchAllWordForms = False
        .Find.Execute Replace:=wdReplaceAll
    End With
End Sub

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 22 июня 2019

Поскольку вы не удосужились сообщить нам, какого цвета вы хотите, чтобы стиль заголовка 1, мы можем только догадываться. Вы действительно должны потратить немного времени на изучение того, как использовать VBA, а не только на устройство записи макросов - есть также бесчисленные примеры видов кода, которые вам нужны во всем Интернете. Например:

Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument
  With .Styles(wdStyleHeading1)
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
    .Font.Name = "Times New Roman"
    .Font.Size = 20
    .Font.ColorIndex = wdGreen
  End With
  With .Range.Find
    .ClearFormatting
    .Text = ""
    .Font.Size = 20
    .Font.Name = "Times New Roman"
    .Replacement.ClearFormatting
    .Replacement.Text = ""
    .Replacement.Style = wdStyleHeading1
    .Format = True
    .Forward = True
    .Wrap = wdFindContinue
    .Execute Replace:=wdReplaceAll
  End With
End With
Application.ScreenUpdating = True
End Sub
1 голос
/ 21 июня 2019

Если я правильно понимаю, вы хотите, чтобы заголовок 1 был в 20 точках New Roman и центрирован. Поэтому просто измените стиль, чтобы получить нужные настройки, прежде чем применять его в своей находке.

Sub ModifyHeading1()
  With ActiveDocument.Styles(wdStyleHeading1)
    With .Font
      .Name = "Times New Roman"
      .Size = 20
    End With
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
  End With
End Sub

Sub ChangeToHeading1()
Dim wdDoc As Document

Set wdDoc = ActiveDocument

    With wdDoc.Range.Find
        .ClearFormatting
        .Font.Size = 20
        .Replacement.ClearFormatting
        .Text = ""
        .Replacement.Text = ""
        .Replacement.Style = ActiveDocument.Styles("Heading 1")
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .Execute Replace:=wdReplaceAll
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...