如何在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 对应到代码也就是排除了【作者简介】,理解这个就可以达到精确控制区间的目的。
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询