需要跳过包含文字Word Macro

时间:2019-06-24 10:31:34

标签: vba ms-word word-vba

我必须打印文档,它需要的是:

  1. 摘要页面应在单页上打印(实际上总是在一页上),但是下一页将在其背面打印,即版税摘要。因此我们在每个使用“宏”的“摘要”页面之后添加了一个空白页面。
  2. 如果“ Royalty”以奇数结尾(例如,从第2页开始到3结束表示总共3页),则需要添加一个空白页。因此,下一个摘要部分将开始在新页面上而不是在结束页面的背面打印。

我到目前为止所写的内容如下:

Sub Test()


InsertSectionBreaks "S U M M A R Y             "
  InsertSectionBreaks "R O Y A L T Y             "
End Sub

Sub InsertSectionBreaks(FindText As String)
  Dim FindRange As Word.Range, SectionRange As Word.Range
  Dim Found As Boolean

  Set FindRange = ActiveDocument.Content

  ' Find next section based on text, insert odd page section break just before
  FindRange.Find.ClearFormatting
  With FindRange.Find
    .Text = FindText
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    Found = .Execute
  End With

  Do While Found
    'avoid adding a section break at beginning of document
    If FindRange.Information(wdActiveEndAdjustedPageNumber) > 1 Then
      Set SectionRange = FindRange.Duplicate
      SectionRange.Collapse wdCollapseStart
      SectionRange.InsertBreak Type:=wdSectionBreakOddPage
    End If
    FindRange.Collapse wdCollapseEnd
    Found = FindRange.Find.Execute
  Loop
End Sub

它可以正常工作,但是公司名称在“摘要”或“版税”出现在空白页上之前位于同一行。这是我得到的输出图片:

Output of above Macro

我不知道该如何解决,公司名称应保留在同一页面上。中间应包含空白页。请帮忙。

1 个答案:

答案 0 :(得分:0)

只需使用正确的分页符就可以在奇数页或偶数页上开始下一页,并且不需要宏即可添加空白页。

enter image description here