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

比如有一篇文章,我已知“内容简介”在第1页的第15行,“作者简介”在第2页的第3行,我想删除这两行之间的所有内容,如何用vba实现?... 比如有一篇文章,我已知“内容简介”在第1页的第15行,“作者简介”在第2页的第3行,我想删除这两行之间的所有内容,如何用vba实现? 展开
 我来答
K_BEAT
2019-05-28 · TA获得超过1245个赞
知道小有建树答主
回答量:879
采纳率:91%
帮助的人:402万
展开全部
  • 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 对应到代码也就是排除了【作者简介】,理解这个就可以达到精确控制区间的目的。

  • 动画演示:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式