Я работаю в Excel vba уже 3 месяца, и это (после одного курса программирования в университете) мой первый реальный контакт с программированием. Пожалуйста, примите это к сведению.
Я создал пользовательскую форму со многими текстовыми полями. Поэтому я написал макрокоманду, которая сначала проверяет, вставил ли пользователь значение в каждое текстовое поле, чтобы потом начать процедуру. Если в каждом текстовом поле нет значения, я хочу, чтобы выходная подпрограмма после msgbox снова заполняла каждое текстовое поле. Тихо просто, верно?
Я подумал, что лучший способ справиться с этим - использовать Go to
заявление. После показа моему боссу кода, который он сказал мне, я никогда не должен использовать это утверждение, чтобы избежать какого-либо спагетти-кода. Он сказал мне, настоящий программист никогда не будет использовать это утверждение и попытается обойти его. Вот как выглядит мой код:
Private Sub SaveButton_Click()
Dim i As Integer
'mandatory textboxes:
For i = 1 To 13
If UserForm1.Controls("Textbox" & i) = "" Then: GoTo again
Next
'procedure...
Exit Sub
again:
MsgBox "Please fill in every mandatory textbox"
End Sub
Мой вопрос : правильно ли избегать этого утверждения в любой ситуации? Это действительно какое-то невысказанное правило никогда не использовать это утверждение? Каковы плюсы и минусы этого, и каковы мои альтернативы (особенно в этом случае)?
Я ценю каждый полезный ответ. Спасибо!