Я создаю инструмент, который извлекает данные из других файлов Excel и выполняет различные типы анализа. Из-за этих многочисленных различных анализов мне пришлось создать несколько подсетей, которые затем все вызываются в «master», что активируется, когда пользователь нажимает кнопку.Как остановить суб, который вызывает несколько подкатегорий
Проблема, с которой я столкнулся, связана с обработкой ошибок, чтобы остановить макрос при возникновении проблемы или когда пользователь пытается остановить сам код - например, появляется всплывающее окно со сценарием типа «продолжить или остановить». Тем не менее, я не могу решить, как остановить макросы! Использование Exit Sub
не работает, потому что мастер-подпрограмма просто перейдет к следующему югу в очереди.
См. Пример ниже - пользователь нажимает кнопку, чтобы активировать master_sub. Если в течение 1-го этапа пользователь выбирает «Нет» или «Отмена» в MsgBox, суб1 завершается (если используется Exit Sub
), но master_sub просто перейдет к sub2 и sub3. Как мне сделать master_sub stop на основе ввода/действия в пределах sub1?
Sub sub1()
Dim MyMsg as Variant
MyMsg = msgbox("Do you wish to continue?", vbYesNo)
If MyMsg = 7 then 'If user clicks "No"
Exit Sub
Else
'Do stuff
End if
End Sub
Sub sub2()
'More stuff
End Sub
Sub sub3()
'Other stuff
End Sub
master_sub()
call sub1
call sub2
call sub3
End Sub
Если вы пишете макрос, вы не используете VB.NET – Plutonix
Да, не знаю, откуда появился тег vb.net. Теперь изменен. – Jules