上一篇文章在文档中所有页面的页眉添加节标题并且链接到自动生成的目录,其中要求在所有样式为“标题 1”的段落前插入分页型分节符,如果碰上没有这样做的文章怎么办?可以用以下代码一次性插入:
Sub 在指定样式的非空白段落前插入分页型分节符()
Dim pos%, styleName$
styleName = "标题 1"
With Selection
.HomeKey wdStory '光标回到文档开头,此时Selection.Start为0
Do
If .Paragraphs(1).Style = styleName And _
Len(Trim(.Paragraphs(1).Range.Text)) > 1 Then
.InsertBreak Type:=wdSectionBreakNextPage
End If
pos = .Start '先记录光标位置
.GoTo wdGoToHeading, wdGoToNext, 1 '向后移动到下一个标题,以标题为对象遍历文档
If .Start = pos Then Exit Do
Loop
End With
End Sub
下面是VBA中常用光标操作汇总:
'移动光标至当前行首
Selection.HomeKey unit:=wdLine
'移动光标至当前行尾
Selection.EndKey unit:=wdLine
'选择从光标至当前行首的内容
Selection.HomeKey unit:=wdLine, Extend:=wdExtend
'选择从光标至当前行尾的内容
Selection.EndKey unit:=wdLine, Extend:=wdExtend
'选择当前行
Selection.HomeKey unit:=wdLine
Selection.EndKey unit:=wdLine, Extend:=wdExtend
'移动光标至文档开始
Selection.HomeKey unit:=wdStory
'移动光标至文档结尾
Selection.EndKey unit:=wdStory
'选择从光标至文档开始的内容
Selection.HomeKey unit:=wdStory, Extend:=wdExtend
'选择从光标至文档结尾的内容
Selection.EndKey unit:=wdStory, Extend:=wdExtend
'选择文档全部内容
Selection.WholeStory
'移动光标至当前段落的开始
Selection.MoveUp unit:=wdParagraph
'移动光标至当前段落的结尾
Selection.MoveDown unit:=wdParagraph
'选择从光标至当前段落开始的内容
Selection.MoveUp unit:=wdParagraph, Extend:=wdExtend
'选择从光标至当前段落结尾的内容
Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
'选择光标所在段落的内容
Selection.MoveUp unit:=wdParagraph
Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
'显示选择区的开始与结束的位置,注意:文档第1个字符的位置是0
MsgBox ("第" & Selection.Start & "个字符至第" & Selection.End & "个字符")
'删除当前行
Selection.HomeKey unit:=wdLine
Selection.EndKey unit:=wdLine, Extend:=wdExtend
Selection.Delete
'删除当前段落
Selection.MoveUp unit:=wdParagraph
Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
Selection.Delete
'删除当前段落的另一种看来更简洁的方法
Selection.Paragraphs(1).Range.Delete