ошибка невозможно удалить диапазон в word

#vba #ms-word

#vba #ms-word

Вопрос:

У меня есть файл word, и я хочу удалить некоторые страницы в нем. Я использую эти коды Kutools для удаления

 Sub DeletePagesInDoc()
    Dim xRange As Range
    Dim xPage As String
    Dim xDoc As Document
    Dim xArr
    Dim I, xSplitCount As Long
    Application.ScreenUpdating = False
    Set xDoc = ActiveDocument
    xPage = InputBox("Enter the page numbers of pages to be deleted: " amp; vbNewLine amp; _
            "use comma to separate numbers", "KuTools for Word", "")
    xArr = Split(xPage, ",")
    xPageCount = UBound(xArr)
    For I = xPageCount To 0 Step -1
        Selection.GoTo wdGoToPage, wdGoToAbsolute, xArr(I)
        xDoc.Bookmarks("Page").Range.Delete
    Next
    Application.ScreenUpdating = True
End Sub
  

Некоторые страницы удаляются, но некоторые страницы нет. Word выдает мне эту ошибку The range cannot be deleted. , почему я получаю эту ошибку?

Комментарии:

1. Просто предположение здесь: когда вы удаляете диапазон, остальные диапазоны переопределяются, чтобы заполнить пробел, который занимал удаленный диапазон. Вам необходимо обновлять оставшиеся диапазоны в каждом цикле. Кроме того, одношаговое прохождение кода может оказаться полезным

2. Диапазон может содержать что-то защищенное. Когда это произойдет, ОСТАНОВИТЕ макрос и посмотрите на документ Word, чтобы увидеть, что находится в выделении.

3. @CindyMeister Да, в нем что-то защищено, но как я делаю это незащищенным. Когда я щелкаю правой кнопкой мыши по таблице, опция удаления таблицы отключена. Как мне его включить?

4. Это трудно сказать, не зная больше о таблице / документе. Что, безусловно, может быть проблемой, так это то, что таблица разбита на страницы. Так ли это здесь? И если / когда это произойдет, предполагается ли удалить всю таблицу целиком?