Сбой функции разрешенного доступа - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть эта функция, которая удаляет допустимый диапазон редактирования из Excel, но я продолжаю получать сообщение об ошибке indicating that method delete of object alloweditrange failed

Sub RemoveUserEditRange()
    Dim ws As Worksheet, rng As Range, aer As AllowEditRange
    Set ws = ThisWorkbook.Sheets("Protection")
    ws.Unprotect
    For Each aer In ws.Protection.AllowEditRanges
        aer.Delete
    Next
End Sub

Ответы [ 2 ]

2 голосов
/ 30 сентября 2019

Вы уверены, что у вас есть этот диапазон?

Попробуйте это

Sub RemoveUserEditRange()
    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Protection")

    With ws
        .Unprotect
        With .Protection
            If .AllowEditRanges.Count = 0 Then
                MsgBox "Nothing to delete"
            Else
                '~~> Check if there is actually a range
                Do While .AllowEditRanges.Count > 0
                    .AllowEditRanges(1).Delete
                Loop
            End If
        End With
        .Protect '<~~ ???
    End With
End Sub
0 голосов
/ 30 сентября 2019

Попробуйте выбрать свой лист перед циклом:

ws.Select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...