8 microsoft-word microsoft-word-2010
我有一个或多或少具有以下结构的word文档:
Title
Heading 1
Heading 2
Text
Heading 2
Text
Heading 1
Heading 2
Text
...
Run Code Online (Sandbox Code Playgroud)
我希望在所有 H2 标题之前都有分页符,除了H1 标题之后的那些,当我希望两个标题在同一页面上时。
我知道我可以在标题 2 的样式中自动设置“前分页符”,但是有什么方法可以设置“直接在标题 1 之后除外”选项而不必手动添加所有分页符?
换句话说,我希望休息时间如下:
Title
-- Page Break --
Heading 1
Heading 2
Text
-- Page Break --
Heading 2
Text
-- Page Break --
Heading 1
Heading 2
Text
-- Page Break --
Heading 2
Text
...
Run Code Online (Sandbox Code Playgroud)
小智 2
创建新的风格将实现你想要的。尝试这个过程:
Word分页符。VBA development environment,然后单击“插入>模块”打开一个新窗口用于输入程序。要粘贴的代码:
'''''''''''''''''''''''''''''''''''''''''''
Sub replace_Heading2_with_Heading2Prime()
Dim i As Integer
Dim s As String
Dim h As String
'''''''''''''''''''''''''''''''''''''
'loop through all pgp and report heading 2
For i = 1 To ActiveDocument.Paragraphs.Count
s = ActiveDocument.Paragraphs(i).Style
If (s = "Heading 2") Then
h = findPriorHeading(i - 1)
If (h = "Heading 1") Then
ActiveDocument.Paragraphs(i).Style = "Heading 2 Prime"
End If
End If
Next i
Exit Sub
End Sub
Function findPriorHeading(iPgp As Integer) As Variant
Dim i As Integer
Dim blnFoundHeading As Boolean
'walk backwards until any heading is found
With ActiveDocument
i = iPgp
blnFoundHeading = False
Do Until (i < 1 Or blnFoundHeading)
s = .Paragraphs(i).Style
If (InStr(s, "Heading") > 0) Then
blnFoundHeading = True
findPriorHeading = s
Exit Function
End If
i = i - 1
Loop
End With
findPriorHeading = ""
End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Run Code Online (Sandbox Code Playgroud)
按Alt+F11返回到Word,然后按Alt+F8打开“宏”对话框。双击“replace_Heading2_with_Heading2Prime”项来运行宏。
我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |