Excel vba. Метод Unprotect выполняется, но не снимает защиту листа - PullRequest
0 голосов
/ 01 марта 2019

Я работаю с соединением ADODB, которое читает и записывает строки Excel в базу данных.

Спорадически при использовании приложения мой рабочий лист входит в состояние, при котором Worksheet.Unprotect не изменяет состояние листа.Лист не защищен при открытии книги, и нигде в моей базе кода нет команды «защитить».Тем не менее, я достигаю состояния, когда запускаю следующий макрос:

Public Sub UnProtect()
For Each ws In ActiveWorkbook.Worksheets
        exitCounter = 0
        Do While exitCounter < 50
            If ws.ProtectContents Then
                ws.UnProtect
                Debug.Print (ws.Name & " protected? " & ws.ProtectContents)
            End If
            exitCounter = exitCounter + 1
        Loop
    Next ws
End Sub

Вывод, который я вижу, выглядит следующим образом:

Data protected? True
Data protected? True
Data protected? True
Data protected? True
Data protected? True
Data protected? True
Data protected? True
...

Я не знаю, есть ли какие-либо воспроизводимыеповедение, которое переводит рабочую книгу в этот «сломанный» режим, но это происходит довольно часто при использовании функций базы данных.

Сохранение книги и повторное открытие Excel решают проблему, но это происходит довольно часто и нарушает функциональность базы данных.Какие действия VBA я могу выполнить, чтобы вывести мою модель из этого состояния?

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