【问题标题】:VBA-Word: Apply multiple paragraph formattingVBA-Word:应用多个段落格式
【发布时间】:2017-03-06 08:27:00
【问题描述】:

我正在尝试在 Word 上处理我的第一个(希望是最后一个)宏,但我走到了死胡同。由于我经常在 Word 和 Word Online 之间工作,格式往往会发生变化,所以我需要创建一个宏,这样我就不用手动重新调整它了。

我的问题是,我需要根据使用的字体在正文文本上设置不同的间距(对于 Arial,在 6 之前有间距,对于 Courier New,我们用于在 0 之前的代码间距)。我尝试使用宏记录器和替换功能创建代码,但是记录器给了我一个通用代码,它没有指定我需要的字体(尽管我选择了它)所以当我运行两者时,我最终得到了 Arial 格式双方。这是我为 Courier New 获得的代码:

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

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

【问题讨论】:

  • 希望不是最后一个!欢迎来到本站!查看tour,了解更多关于提出能吸引高质量答案的问题的信息。

标签: vba macros ms-word


【解决方案1】:

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

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

制作多种字体的最简单方法是将整个函数复制到另一个具有不同名称的函数中,并在另一个函数中更改字体名称和间距。

【讨论】:

  • 就这么简单吧?我仍然不明白为什么它没有包含在录音机中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多