Sub DeleteContent()
Dim lngNumOfPages As Long
lngNumOfPages = Selection.Information(wdNumberOfPagesInDocument)
' /* 确保文档至少有两页. */
If lngNumOfPages > 1 Then
Dim lngStart As Long
Dim lngEnd As Long
' /* 获取第 1 页第 15 行的字符开始位置
' 这里第 15 行实际上已经跳转到了第 16 行, 已经排除了 [内容简介]. */
Selection.GoTo(wdGoToPage, , 1).Select
lngStart = Selection.GoTo(wdGoToLine, wdGoToRelative, 15).Start
' /* 获取第 2 页第 2 行的字符开始位置
' 用第 2 行是因为不能包括第 3 行的 [作者简介]). */
Selection.GoTo(wdGoToPage, , 2).Select
lngEnd = Selection.GoTo(wdGoToLine, wdGoToRelative, 2).End ' 用 Start 属性一样
' 删除第 1 页第 15 行到第 2 页第 3 行之间的内容.
ActiveDocument.Range(lngStart, lngEnd).Delete
End If
End Sub
这里要注意的是区间的选取,因为需求是删除第 1 页第 15 行到第 2 页第 3 行之间的内容,那么区间选区应该是 (15, 3-1),15 对应到代码其实是在第 15+1 也就是 16 行了,这个时候排除了【内容简介】,3-1 也就是 2 对应到代码也就是排除了【作者简介】,理解这个就可以达到精确控制区间的目的。
动画演示: