Я работаю с соединением 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 я могу выполнить, чтобы вывести мою модель из этого состояния?