Действительно борется с этим. Я пытаюсь вытащить книгу из режима разработки, когда пользователь покидает конкретный лист. У меня есть co, который будет запускаться от кнопок, которые берут лист в и из режима дизайна.Активировать/деактивировать режим проектирования при выборе рабочего листа
Теперь я хочу запустить их на листе, активировать/деактивировать события. Рабочий лист активируется нормально и переходит в режим разработки.
Однако у VBA возникает проблема выхода из режима разработки из кода. Я что-то упускаю. Или есть совершенно другой способ приблизиться к этому.
Благодаря D
Sub testEnter()
EnterExitDesignMode True
End Sub
Sub testExit()
EnterExitDesignMode False
End Sub
Sub EnterExitDesignMode(bEnter As Boolean)
Dim cbrs As CommandBars
Const sMsoName As String = "DesignMode"
Set cbrs = Application.CommandBars
If Not cbrs Is Nothing Then
If cbrs.GetEnabledMso(sMsoName) Then
If bEnter <> cbrs.GetPressedMso(sMsoName) Then
cbrs.ExecuteMso sMsoName
Stop
End If
End If
End If
End Sub
Поскольку код не запускается после включения DesignMode, вам, вероятно, придется предупредить пользователя о том, чтобы отключить «DesignMode» перед выходом. Например, прежде чем включать его, создайте окно сообщения, которое предупреждает их об этом, прежде чем покинуть лист. –
В дополнение к тому, что упоминал @ScottHoltzman, вы также можете поместить элемент управления формы в соответствующий лист и присвоить ему макрос 'testExit'. –
Во многих ПК вкладка разработчика может быть не видна, поэтому попросить пользователя перейти и щелкнуть в режиме разработки, возможно, не самый лучший вариант. В таком случае следуйте моим советам по добавлению элемента управления формой или вставьте код в модуль и назначьте ему клавишу быстрого доступа, чтобы пользователь мог выйти из режима разработки, нажав эту клавишу. –