如果下一個是“標題 5”,則“標題 4”與下一個保持一致,但在其他情況下則不然

如果下一個是“標題 5”,則“標題 4”與下一個保持一致,但在其他情況下則不然

我有一個 Word 文檔,它是一本規則手冊。為了完成枚舉,對於規則中的不同層級(規則 1、第 3 節、第 4 條、子條款 b、子條款 1 等),使用不同的標題。這很好用。

有時,子文章 c 會引入包含多個子子文章的清單。到目前為止,一切都很好。

但有時,所說的子文章 c 是頁面的最後一行,這意味著子文章清單從下一頁的第一行開始。這不好。

我也無法將標題 4、5 和 6 設為總是 繼續下一步,因為那麼標題 5 也會繼續下一步如果下一段不是列表,則會在下一頁插入太多文本,從而浪費空間。

到目前為止,我的解決方法是查看所有頁面的所有底部,如果我發現它們,則手動將“與下一個保持一致”添加到“段落”(荷蘭語中為“Alinea”)設定中。但由於該文件有 400 多頁,這是不可持續的。

我在某處找到了一個宏(感謝和榮譽!)這對我有一點幫助:

Sub ColonParaEnd_SetKeepWithNext()

    '=========================
    'Macro created 2010 by Lene Fredborg, DocTools - www.thedoctools.com
    'THIS MACRO IS COPYRIGHT. YOU ARE WELCOME TO USE THE MACRO BUT YOU MUST KEEP THE LINE ABOVE.
    'YOU ARE NOT ALLOWED TO PUBLISH THE MACRO AS YOUR OWN, IN WHOLE OR IN PART.
    '=========================
    'The macro iterates through all paragraphs in the active document
    'If a paragraph ends with a colon, Keep with next is applied
    '=========================

    Dim oPara As Paragraph
    Dim n As Long 'used as counter
    
    n = 0
    
    'Iterate though all paragraphs
    For Each oPara In ActiveDocument.Paragraphs
        With oPara
            'If a colon is found immediately before the paragraph mark, Chr(13), apply Keep with next
            'In case of end of a table cell, the end of cell marker is Chr(13) & Chr(7) - alså handle this
            If Right(.Range.Text, 2) = ":" & Chr(13) Or Right(.Range.Text, 3) = ":" & Chr(13) & Chr(7) Then
                .Range.ParagraphFormat.KeepWithNext = True
                n = n + 1
            End If
        End With
    Next oPara
    
    MsgBox "Finished." & vbCr & "Keep with next applied to " & n & " paragraph(s).", vbOKOnly, "Apply Keep With next"
End Sub

因此,我想知道聰明的人是否無法幫助我設計一個聰明的宏(可能是在我引用的宏的基礎上構建的)。我在尋找什麼:

  1. 如果標題 4 後面跟著標題 5,則使標題 4 的此實例「與下一個保持一致」。
  2. 如果標題 5 後面跟著標題 6,則使標題 5 的該實例「與下一個保持一致」。
  3. 如果標題 6 後面跟著標題 7,則使標題 6 的該實例「與下一個保持一致」。

預先感謝您的見解!

相關內容