VBA Word:应用多段落格式

VBA Word:应用多段落格式,vba,macros,ms-word,Vba,Macros,Ms Word,我正试图在Word上编写我的第一个(希望是最后一个)宏,但我已经走到了死胡同。由于我经常在Word和Word Online之间工作,格式往往会改变,因此我需要创建一个宏,以避免手动重新调整它的麻烦 我的问题是,我需要根据所使用的字体在正文文本上使用不同的间距(对于Arial,间距在6之前,对于Courier New,我们用于代码间距在0之前)。我曾尝试使用宏录制器和替换函数创建代码,但录制器给了我一个通用代码,它没有指定我需要的字体(尽管我选择了它),所以当我运行这两个函数时,我最终都使用了Ar

我正试图在Word上编写我的第一个(希望是最后一个)宏,但我已经走到了死胡同。由于我经常在Word和Word Online之间工作,格式往往会改变,因此我需要创建一个宏,以避免手动重新调整它的麻烦

我的问题是,我需要根据所使用的字体在正文文本上使用不同的间距(对于Arial,间距在6之前,对于Courier New,我们用于代码间距在0之前)。我曾尝试使用宏录制器和替换函数创建代码,但录制器给了我一个通用代码,它没有指定我需要的字体(尽管我选择了它),所以当我运行这两个函数时,我最终都使用了Arial格式。这是我收到的新快递的代码:

Sub FormatBodyCode()

Application.ScreenUpdating = False

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find.Replacement.ParagraphFormat
    .SpaceBefore = 0
    .SpaceBeforeAuto = False
    .SpaceAfter = 0
    .SpaceAfterAuto = False
    .LineSpacingRule = wdLineSpaceMultiple
    .LineSpacing = LinesToPoints(1.15)
    .Alignment = wdAlignParagraphLeft
    .OutlineLevel = wdOutlineLevelBodyText
    .LineUnitBefore = 0
    .LineUnitAfter = 0
End With
With Selection.Find
    .Text = ""
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

Application.ScreenUpdating = True
End Sub

如何指定字体以使其正常工作?

一次快速代码更改应限制对单个字体的搜索:

...
With Selection.Find
    ...
    .Format = True 
    .Font.Name = "Courier New"    ' <== Add this - Or whatever font you want
    ...
。。。
选择。查找
...
.Format=True

.Font.Name=“Courier New”'希望不是最后一个!欢迎来到这个网站!查看更多关于提问的信息,这些问题将吸引高质量的答案。就这么简单,是吗?我仍然不明白为什么它没有包括在录音机虽然。