Мне нужно распечатать документы, и для этого нужно:
- Страница Sumarry должна печататься на одной странице (на самом деле всегда на одной странице), но следующая страница печатается поверх нее, т.е. поэтому мы добавили пустую страницу после каждой страницы сводки, используя макрос.
- Если «Роялти» заканчивается нечетным номером (пример, начинающийся на странице № 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
Это работает нормально, но название компании, которое я имею в той же строке, прежде чем "Сводка" или "Роялти" появится на пустой странице. вот изображение вывода, которое я получаю:
Я не понимаю, как это можно исправить, название компании должно остаться на той же странице. должен включать пустую страницу между ними. пожалуйста помоги.