На листе есть выпадающий список ComboBox. К нему прикручен код проверки варианта выбора ComboBox_Change() и вызов UserForm.
Во избежание срабатывания кода повторно введен триггер on_change1
Лист1
[vba]Код
sub ComboBox_Change()
' on_change1 - определена как глобальная в теле Книга
If on_change1 = 0 And Range("a1")="Расчет" Then
on_change1 = 1
Load UserForm
UserForm.Show
Unload UserForm
end if
on_change1 = 0
end sub
[/vba]
При закрытии книги автоматически срабатывает код ComboBox_Change
Казалось бы если в событии Workbook_BeforeClose поставить on_change1 = 1, то ComboBox_Change сработает впустую.
Эта книга
[vba]Код
public on_change1 as integer
Private Sub Workbook_BeforeClose(Cancel As Boolean)
on_change1 = 1
End Sub
[/vba]
Но после того, как отработает Workbook_BeforeClose в теле ComboBox_Change on_change1 = Empty
Как обойти?
Пока писал вопрос перенес публикацию on_change1 в модуль и все заработало.
Лист1
[vba]Код
sub ComboBox_Change()
' on_change1 - определена как глобальная в теле Module1
If on_change1 = 0 And Range("a1")="Расчет" Then
on_change1 = 1
Load UserForm
UserForm.Show
Unload UserForm
end if
on_change1 = 0
end sub
[/vba]
Эта книга
[vba]Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
on_change1 = 1
End Sub
[/vba]
Module1
[vba]Код
public on_change1 as integer
[/vba]
[moder]Оформите коды тегами (кнопка #)[/moder]