У меня проблема с Workbook_BeforeSave, когда вызывается событие, но большая часть кода ничего не делает.
Я хочу защитить паролем некоторые листы, скрыть другой лист и активироватьтреть.Странно, но некоторые элементы, такие как debug.print и MsgBox внутри подпрограммы.У меня также есть листы, активированные из Workbook_Open, но большая часть кода, который я пытаюсь выполнить в подпрограмме Workbook_BeforeSave, просто не срабатывает.Вот код, который я пытаюсь запустить:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
Application.ScreenUpdating = False
If AdministratorAccess Then ' A boolean that is marked true when admin logs in
If MsgBox("For security, sheets must be locked and Admin logged out before saving. " & _
"Do you want to Save the workbook?", _
vbYesNo, "Changes not saved") = 6 Then
Call protectReadiness ' A sub that protects the 'Project Readiness' sheet
Call protectViewer ' A sub that protects the 'Project viewer' sheet
Call veryHideUsers ' A sub that xlVeryHides the 'Users' sheet
Sheets("Project viewer").Activate
MsgBox ("To continue editing as Admin, simply log back in.")
Else
Cancel = True
End If
Else
Call protectReadiness ' A sub that protects the 'Project Readiness' sheet
Call protectViewer ' A sub that protects the 'Project viewer' sheet
Call veryHideUsers ' A sub that xlVeryHides the 'Users' sheet
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
В приведенном выше фрагменте кода вызовы protectReadiness и Sheets («Просмотр проекта»). Activ просто не выполняются.Когда я добавляю их в ближайшее окно, они работают нормально.Также MsgBox активируется и отображается правильно.
Я потратил пару часов на поиски решения в Интернете и ничего не могу найти.Я попытался удалить все из подпрограммы, за исключением sheet.activate, и обнаружил, что он ничего не делает.Я попытался переместить вспомогательные методы защиты и очень скрытия в раздел ThisWorkbook редактора VBA.Я действительно в растерянности из-за того, что делать.
Кто-нибудь имеет представление о том, что я могу делать неправильно, или что может быть причиной этого странного поведения?Любые предложения будут с благодарностью.