VBA(exсel) имеется тело макроса, нужно сделать проверку переменной на число. имеется тело основы и тело проверки. если что не так у меня, подскажите и помогите все объединить. дельная помощь может быть неплохо вознаграждена.
Private Sub CommandButton1_Click() Dim lett As Integer lett = InputBox("Введите возраст ребенка", "Пример1")
Select Case lett Case Is < 7 MsgBox "Ребенок еще не пошел в школу", 48, "Пример1" Case 7 MsgBox "Ребенок в 1 классе", 64, "Пример1" Case 8 MsgBox "Ребенок в 2 классе", 64, "Пример1" Case 9 MsgBox "Ребенок в 3 классе", 64, "Пример1" Case 10 MsgBox "Ребенок в 4 классе", 64, "Пример1" Case 11 MsgBox "Ребенок в 5 классе", 64, "Пример1" Case 12 MsgBox "Ребенок в 6 классе", 64, "Пример1" Case 13 MsgBox "Ребенок в 7 классе", 64, "Пример1" Case 14 MsgBox "Ребенок в 8 классе", 64, "Пример1" Case 17 MsgBox "Ребенок на работе", 64, "Пример1"
Case 55 MsgBox "Ребенок на пенсии", 64, "Пример1"
Case Is > 14 MsgBox "Ребенок в ПМК", 48, "Пример1" Case Is > 55 MsgBox "Ребенок на пенсии", "Пример1"
Case Is > 17 MsgBox "Ребенок на работе", "Пример1" End Select
End Sub
Sub tt() s = [a1] If Len(s) Then If IsNumeric(s) Then MsgBox 1 End If End Sub
ЗЫ. знаю, может довольно просто, но сижу уже пару часов не могу понять, по идее если и делать проверку то надо ее ставить перед основой и запускать, но тогда у меня не хочет запускаться режим отладки макроса. My skype:cod4_emostyle ---------------------- revolution is coming
У тебя все равно задана переменная lett как целое число.
Код
Dim lett As Integer
Следовательно, когда ты вводишь в InputBox не число или пустую строку, то у тебя вылезет ошибка, связанная с типом этой переменной.
Так что оставляй только основу своего макроса. Можно сделать еще так:
Код
Private Sub CommandButton1_Click() Dim lett As String Dim Numlett As Integer lett = InputBox("Введите возраст ребенка", "Пример1") If Len(lett) = 0 Then MsgBox "Вы ввели пустую строку!", 64, "Пример1" Else: If Not IsNumeric(Numlett = Convert.ToInt32(lett)) Then MsgBox "Вы ввели не число!", 64, "Пример1" Else: Select Case Numlett Case Is < 7 MsgBox "Ребенок еще не пошел в школу", 48, "Пример1" Case 7 MsgBox "Ребенок в 1 классе", 64, "Пример1" Case 8 MsgBox "Ребенок в 2 классе", 64, "Пример1" Case 9 MsgBox "Ребенок в 3 классе", 64, "Пример1" Case 10 MsgBox "Ребенок в 4 классе", 64, "Пример1" Case 11 MsgBox "Ребенок в 5 классе", 64, "Пример1" Case 12 MsgBox "Ребенок в 6 классе", 64, "Пример1" Case 13 MsgBox "Ребенок в 7 классе", 64, "Пример1" Case 14 MsgBox "Ребенок в 8 классе", 64, "Пример1" Case 17 MsgBox "Ребенок на работе", 64, "Пример1" Case 55 MsgBox "Ребенок на пенсии", 64, "Пример1" Case Is > 14 MsgBox "Ребенок в ПМК", 48, "Пример1" Case Is > 55 MsgBox "Ребенок на пенсии", "Пример1" Case Is > 17 MsgBox "Ребенок на работе", "Пример1" End Select End If End If End Sub
он у меня из за ошибки был инвалидом и в 17лет дома был. не ходил ни в школу никуда. My skype:cod4_emostyle ---------------------- revolution is coming
Optimuss, уже сделано. даже сделано уже на проверку пароля. спасибо одногруппнику что пнул меня и заставил смотреть в тетрадь и гугл казус/годми/дгалил тред закройте. My skype:cod4_emostyle ---------------------- revolution is coming