繁体   English   中英

删除word VBA中几个书签之间的文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM