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

    动画演示:

温馨提示:答案为网友推荐,仅供参考
相似回答