У меня возникли проблемы с Excel VBA UserForm События в Office Excel 2013 следующим образомExcel VBA UserForm enableevents
- Простой UserForm с тремя флажками (CB1,2,3) и две кнопки Отмена и ОК
- При проверке СВ1 установить Cb3 = ложный
- При проверке СВ2 установить Cb3 = ложный
- При проверке СВ3 установить CB1 = ложную и CB2 = ложный
Я прочитал и понял http://www.cpearson.com/excel/SuppressChangeInForms.htm относительно подавления событий UserForm и расстался с ними ...
В приведенном выше списке выше приведенных выше 2. и 3. корректно выполняются коды (см. Ниже), а не-события запускаются для CB3. Однако, когда я делаю 4. Проверьте CB3 - он запускает события для CB1 и CB2, даже если я установил, чтобы он не срабатывал.
Любая помощь с благодарностью получил,
С наилучшими пожеланиями
Seán
Код:
Public EnableEvents As Boolean
Private Sub UserForm_Initialize()
Me.EnableEvents = True
End Sub
Private Sub vboInputsSelected_Click()
Me.EnableEvents = False
vboPracticesSelected.value = False 'this line does NOT fire an event
Me.EnableEvents = True
End Sub
Private Sub vboOutputsSelected_Click()
Me.EnableEvents = False
vboPracticesSelected.value = False 'this line does NOT fire an event
Me.EnableEvents = True
End Sub
Private Sub vboPracticesSelected_Click()
Me.EnableEvents = False
vboInputsSelected.value = False 'this line DOES fire an event
vboOutputsSelected.value = False 'this line DOES fire an event
Me.EnableEvents = True
End Sub
Не нужно ли устанавливать каждое значение флажка вместо того, чтобы просто присваивать объект true или false? – NickSlash
Спасибо, хороший, я изменил код, чтобы быть правильным: с .value на конце (vboInputsSelected.value = False), и он STILL запускает событие, когда EnableEvents является ложным – Sean