РЕШЕНО!
Я должен проверить, что определенные ячейки не пусты, поэтому я хочу создать подпрограмму и передать нужные мне переменные.
Вот что я придумал:
Sub errorMessage(errMsg As String, errRange As String)
If Range(errRange) = "" Then
MsgBox errMsg, , "Error:"
Range(errRange).Activate
'this is what i was looking for :doh:, the 'end' line terminates everything..
END
End Sub
Теперь, когда я вызываю его с моей кнопки, будет ли он фактически заканчивать кнопку?
i.e.
Private Sub CommandButton1_Click()
Call errorMessage("name is missing", "D4")
'this function shouldn't be called if there was a msgbox displayed with the above call
sendEmail
End Sub
Как я могу это сделать?
ИЗМЕНИТЬ:
ОК Итак, вот как я это сделал, причина, по которой я пытаюсь это сделать, заключается в том, чтобы избежать тонны строк кода в сабвуфере buttonClick, что вы думаете ??
имейте в виду, что эта штука должна проверить около 25 вопросов на наличие пробелов перед выполнением подпрограммы sendEmail....
Private Sub CommandButton1_Click()
Call validateEntry("Client Name is missing.", "D4")
Call validateEntry("# not complete.", "D5")
Call validateEntry("Address same as CV?", "D6")
Call validateEntry("Number missing.", "D8")
Call validateEntry("Type missing.", "D9")
Call validateEntry("Q1 requires a Yes or No.", "E19")
Call validateEntry("Q2 requires a Yes or No.", "E21")
Call validateEntry("Q3 requires a Yes or No.", "E23")
Call validateEntry("Q4 requires a Yes or No.", "E25")
Call validateEntry("Q5 requires a Date.", "D28")
Call validateEntry("Q6 requires a Yes or No.", "E30")
Call validateEntry("Q7 requires a Yes or No.", "E32")
MsgBox "passed"
'sendEmail
End Sub
Sub validateEntry(errMsg As String, errRange As String)
If Range(errRange) = "" Then
MsgBox errMsg, , "Error:"
Range(errRange).Activate
End
End If
End Sub
End
— действительно плохая идея, см. здесь. При использованииEnd
нет абсолютно никакой очистки объекта. - person LittleBobbyTables - Au Revoir   schedule 08.02.2013