Господа, здравствуйте. Я в тупике. По задумке пользователь вводит в UserForm данные, которые потом должны использоваться в различных процедурах обычных модулей. Очевидно, что для этого нужно передать переменные из UserForm в обычный модуль.
В частности, нужно при нажатии кнопки "Отмена" присвоить переменной pubIfExitSub значение True. И эту переменную передать в обычный модуль и в нём уже обработать. К сожалению, не получается, даже если сделать её глобальной.
Это только пример. Моя UserForm планируется быть значительно сложней. Обрабатывать данные внутри UserForm вообще не вариант.
Спасибо.
Модуль. Процедура 1.
В частности, нужно при нажатии кнопки "Отмена" присвоить переменной pubIfExitSub значение True. И эту переменную передать в обычный модуль и в нём уже обработать. К сожалению, не получается, даже если сделать её глобальной.
Это только пример. Моя UserForm планируется быть значительно сложней. Обрабатывать данные внутри UserForm вообще не вариант.
Спасибо.
Модуль. Процедура 1.
Код |
---|
Public pubIfExitSub as Boolean Sub Test () Dim uf1UserSettings As UserForm1 Set uf1UserSettings = VBA.UserForms.Add(UserForm1.Name) uf1UserSettings.Show vbModal End Sub |
UserForm. При нажатии на кнопку "Отмена" переменной должно присвоиться значение True.
Код |
---|
Private Sub CommandButton_Cancel_Click() pubIfExitSub = True 'При нажатии кнопки "Отменить выполнение программы", данная глобальная переменная становится True, и в основной процедуре она проверяется и прекращается выполнение программы. End sub |
Модуль. Процедура 2.
Код |
---|
Sub Processing_pubIfExitSub () Select Case pubIfExitSub1 'Если в пользовательской форме нажата кнопка "Отменить выполнение программы", нужно выйти из процедуры. Case pubIfExitSub1 = True Exit Sub End Select End sub |