[英]Delete text between several bookmarks in word VBA
我已经检查了我现在要问的问题,但我仍然无法解决我的问题,如下所示:
我尝试删除 Word 文档中两个书签之间的文本 - 我已经解决了这一部分。 但是,我有很多书签对,我想删除每对书签之间的文本。 因此,我决定在两个数组中输入书签: arr_B 用于文本部分的开头, arr_E 用于文本部分的结尾,并且在它们之间应该删除文本。 我试过这样:
Sub Macro2()
Dim arr_B As Variant
Dim arr_E As Variant
Dim i As Long
Dim k As Long
Dim element As Variant
arr_B = Array("B1_RSD1", "B2_RSD2")
arr_E = Array("E1_RSD1", "E2_RSD2")
For Each element In arr_B
For Each element In arr_E
Set rngStart = ActiveDocument.Bookmarks(i).Range
Set rngEnd = ActiveDocument.Bookmarks("k").Range
ActiveDocument.Range(rngStart.Start, rngEnd.End).Select
Selection.Delete
Exit For
Next k
Next i
End Sub
但是,上面的代码给出了错误
对于已经使用的控制变量
我不知道如何解决这个问题。 我将不胜感激,并在此先感谢您。
鉴于您的书签名称的相似性,您似乎甚至不需要数组。 尝试:
Sub Demo()
Application.ScreenUpdating = False
Dim i As Long, Rng As Range, StrTxt As String
With ActiveDocument
For i = 1 To .Bookmarks.Count / 2
StrTxt = i & "_RSD" & i
If .Bookmarks.Exists("B" & StrTxt) And .Bookmarks.Exists("E" & StrTxt) Then
Set Rng = .Bookmarks("B" & StrTxt).Range
With Rng
.End = .Bookmarks("E" & StrTxt).Range.End
.Delete
End With
End If
Next i
End With
Application.ScreenUpdating = False
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.