簡體   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