我想将某些字体大小= 20和字体名称=“ Times New Roman”的文本的格式更改为“ Heading 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
谢谢。
答案 0 :(得分:1)
如果我正确理解,您希望标题1在20点Times 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
答案 1 :(得分:1)
由于您不必费心告诉我们您希望Heading 1样式是什么颜色,我们只能猜测。您确实还应该花一些时间来学习如何使用VBA,而不仅仅是宏记录器-在网络上也有无数示例,说明了所需的各种代码。例如:
-4.000