Вопрос по VBA Excel такой.
Есть некая форма, я ее вызываю, при нажатии на обределенную кнопку вызывается программа, которая действует, пока я ее не остановлю с помощью кнопки. Но, если закрыть форму крестиком, то программа продолжает работать.
Чтобы ее завершить, я делал так. Вводил глобальную переменную, например ctr, при запуске программы считаем ее True, и постоянно проверяем в программе, если она стала False, программа завершается.
А при закрытии формы ставил событие
MyForm_Terminate()
ctr=false
Проблема в том, что, как я понял, событие отказывается работать, пока не завершится основная программа. Почему я так решил: если вместо события использовать, например, кнопку, которая делает тоже самой, то все удачно проходит, и также, если не запускать основную программу, обработчик работает.
Есть какие-нибудь идеи?
Возможно, есть вариант проверять в основной программе, открыта ли сейчас форма, но никак не могу найти, как это сделать.
Примечание:
Принципиальный код, который использую:
Private ctr as boolean
sub MyForm_Terminate()
ctr=false
end sub
sub main()
ctr=true
MyForm.Show ' На форме кнопка, запускающая prog
call MyForm_Terminate
end sub
sub prog()
if ctr = false then exit sub
Основная программа
end sub
Так вот, если запущена prog, то MyForm_Terminate не работает
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.