word中使用vba实现:删除某两行之间的全部内容

180it 2019-09-25 PM 3356℃ 0条

如何在word中使用vba实现:删除某两行之间的全部内容
比如有一篇文章,我已知“内容简介”在第1页的第15行,“作者简介”在第2页的第3行,我想删除这两行之间的所有内容,如何用vba实现?

Word VBA 参考代码:

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 对应到代码也就是排除了【作者简介】,理解这个就可以达到精确控制区间的目的。

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

word中使用vba实现:删除某两行之间的全部内容