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

时间:2018-08-24 07:30:43

标签: ms-word word-vba

我已经检查了我现在要问的问题,但仍然无法解决以下问题:

我尝试删除Word文档中两个书签之间的文本-我已解决了这一部分。但是,我有很多书签对,我想删除每对之间的文本。因此,我决定以两个数组输入书签:arr_B(用于文本部分的开头)和arr_E(用于文本部分的结尾),在它们之间应删除文本。我已经尝试过:

UPDATE p
SET FormattedBody = REPLACE(CAST(FormattedBody as NVarchar(Max)),sourceURL,[TargetURL])
FROM posts p
CROSS JOIN 
(
    SELECT sourceURL,[TargetURL]
    FROM temptable 
    where id <= 5335
) targetDt
Where p.SectionID = 95 and p.postlevel=1  

但是,上面的代码给出了错误

  

对于已在使用的控制变量

我找不到解决该问题的方法。我将不胜感激,在此先感谢您。

1 个答案:

答案 0 :(得分:0)

鉴于您的书签名称相似,看来您甚至不需要数组。试试:

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