Workbook_BeforeSave не вызывает некоторые события - PullRequest
0 голосов
/ 28 февраля 2019

У меня проблема с 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.Я действительно в растерянности из-за того, что делать.

Кто-нибудь имеет представление о том, что я могу делать неправильно, или что может быть причиной этого странного поведения?Любые предложения будут с благодарностью.

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