Страницы: 1
RSS
Как принудительно остановить макрос другим макросом?
 
Макрос в VBA вызываю так:  
Call Макрос1  
А как мне написать остановку этого макроса другим макросом? Что-нибудь типа  
Sub Остановить()  
Stop Макрос1 '(но так не срабатывает)  
End Sub    
Пробовал Exit Макрос1 - тоже не помогло.
 
Можно узнать причину, по которой требуется остановить макрос?  
В общем случае такой команды нет, можно в самом макросе предусмотреть выход до окончания процедуры с помощью Exit Sub  
Потом, макросы выполняются последовательно, т.е вызывающий макрос останавливается на строке Call Макрос1 и управление к следующей строке переходит после заверщения Макрос1 по End Sub или Exit Sub
 
вы попробуйте сначала запустить какой-либо другой макрос во время работы первого..  
 
остановить можно только предусмотрев в самом макросе такую процедуру. Причем можно остановить, а можно закончить работу.  
соответственно:  
1 stop  
2 exit sub(function)  
 
чтобы "остановить" вызывающий макрос, нужно предусмотреть обработку возвращаемого значения вызываемого макроса.  
 
т.е.  
 
sub макрос1()  
...  
call vfrhjc2(exit)  
if exit then exit sub  
...  
end sub  
sub макрос2(exit as boolean)  
exit=false  
if .. then    
 exit=true  
 exit sub  
end if  
..  
end sub
 
с именами я, конечно, не прав - нельзя использовать имя exit, можно exit_ или ex_it или..
 
Причниа следующая. Макрос1 запускается по определенному условию и заставляет мигать (постоянно) ячейку. Хочу на кнопку подвесить Макрос2, который в любой нужный мне момент прекратит работу Макрос1.
Страницы: 1
Читают тему
Наверх