Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как запретить ComboBox_ Change() при закрытии книги - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Как запретить ComboBox_ Change() при закрытии книги
pa_mfc Дата: Понедельник, 05.10.2015, 10:54 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
На листе есть выпадающий список 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]


Глаза боятся что руки делают

Сообщение отредактировал Serge_007 - Вторник, 06.10.2015, 00:31
 
Ответить
СообщениеНа листе есть выпадающий список 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]

Автор - pa_mfc
Дата добавления - 05.10.2015 в 10:54
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!