Как выйти из бесконечного цикла в VBA/VB.NET

немного глупый вопрос, но я не смог найти на него ответа.
К сожалению, я сделал очень позорную ошибку, когда случайно создал бесконечный цикл.

Private Sub Textbox1_Change()
    Do While Len(Trim(Textbox1.Text)) > 4
       MsgBox "Please enter your birthyear in format of ####"
    Loop
End Sub

Поскольку я хотел заставить пользователей вводить только 4 цифры, очевидно, не понимая, что я сделал бесконечный цикл, учитывая, что невозможно закрыть MsgBox, так как после достижения >4 символов он продолжает создавать новые MsgBoxes даже после того, как вы QueryClose/OK тот, который появился.

введите здесь описание изображения

Есть ли способ отменить его, не закрывая Excel вообще? К сожалению, я не могу даже приостановить код, учитывая, что MsgBox открыт в модальной форме, и я не могу щелкнуть ни один из элементов редактора.

введите здесь описание изображения


person Samuel Hulla    schedule 08.03.2019    source источник
comment
@ Ошибка 1004: избежать ошибки — всегда хорошая идея, но ваше предложение совсем не помогает, проблема в том, что код зависает, потому что после ввода условие никогда не меняется. ОП спросил, как прервать выполнение, а не как проверить значение   -  person FunThomas    schedule 08.03.2019
comment
@ Error1004 Я действительно сделал это, но сократил код ради вопроса. Превратил его в комбинированный if с and теперь работает. В любом случае, все еще ценю усилия, чтобы помочь :) @FunThomas Я думаю, что можно оставить это как предложение комментария. Ответы должны быть зарезервированы по теме, но я не вижу в этом проблемы, когда они представлены в форме комментария.   -  person Samuel Hulla    schedule 08.03.2019


Ответы (1)


Просто нажмите Ctrl + Alt + Pause/Break.

Это нарушит вашу рутину.

Кнопка Pause/Break обычно расположена над кнопкой PageUp на большинстве клавиатур

person Pspl    schedule 08.03.2019
comment
я люблю тебя за это - person Polydynamical; 14.07.2021