Макрос останавливается с ошибкой Next без For
Lebron300
Дата: Четверг, 18.12.2014, 20:05 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
40% ±
Excel 2003
Нужно сделать вывод типа сахарного диабета - 1 или 2 (1 тип - <=3; 2 тип - >3). Выскакивает ошибка на Next R. [vba]Код
Private Sub CommandButton2_Click() Dim NORM As Range, R, T Set NORM = Range("НОРМА") For R = 1 To 7 Debug.Print Controls("TextBox" & R).Text T = CDbl(Replace(Controls("TextBox" & R).Text, ".", ",")) If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox2.Text) < 8 Then st = "Легкая степень тяжести" ElseIf Val(TextBox2.Text) > 14 Then st = "Тяжелый случай" Else st = "Средняя степень тяжести" End If If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox5.Text) <= 3 Then st = "1 типа" ElseIf Val(TextBox5.Text) > 3 Then st = "2 типа" End If MsgBox "Пациент болен. Сахарный диабет!" & vbLf & st, 64, NORM(R, 1) Exit Sub End If Next R MsgBox "Пациент здоров!", 64, "" End Sub
[/vba]
Нужно сделать вывод типа сахарного диабета - 1 или 2 (1 тип - <=3; 2 тип - >3). Выскакивает ошибка на Next R. [vba]Код
Private Sub CommandButton2_Click() Dim NORM As Range, R, T Set NORM = Range("НОРМА") For R = 1 To 7 Debug.Print Controls("TextBox" & R).Text T = CDbl(Replace(Controls("TextBox" & R).Text, ".", ",")) If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox2.Text) < 8 Then st = "Легкая степень тяжести" ElseIf Val(TextBox2.Text) > 14 Then st = "Тяжелый случай" Else st = "Средняя степень тяжести" End If If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox5.Text) <= 3 Then st = "1 типа" ElseIf Val(TextBox5.Text) > 3 Then st = "2 типа" End If MsgBox "Пациент болен. Сахарный диабет!" & vbLf & st, 64, NORM(R, 1) Exit Sub End If Next R MsgBox "Пациент здоров!", 64, "" End Sub
[/vba] Lebron300
К сообщению приложен файл:
VBA.xls
(78.5 Kb)
Ответить
Сообщение Нужно сделать вывод типа сахарного диабета - 1 или 2 (1 тип - <=3; 2 тип - >3). Выскакивает ошибка на Next R. [vba]Код
Private Sub CommandButton2_Click() Dim NORM As Range, R, T Set NORM = Range("НОРМА") For R = 1 To 7 Debug.Print Controls("TextBox" & R).Text T = CDbl(Replace(Controls("TextBox" & R).Text, ".", ",")) If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox2.Text) < 8 Then st = "Легкая степень тяжести" ElseIf Val(TextBox2.Text) > 14 Then st = "Тяжелый случай" Else st = "Средняя степень тяжести" End If If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox5.Text) <= 3 Then st = "1 типа" ElseIf Val(TextBox5.Text) > 3 Then st = "2 типа" End If MsgBox "Пациент болен. Сахарный диабет!" & vbLf & st, 64, NORM(R, 1) Exit Sub End If Next R MsgBox "Пациент здоров!", 64, "" End Sub
[/vba] Автор - Lebron300 Дата добавления - 18.12.2014 в 20:05
Pelena
Дата: Четверг, 18.12.2014, 20:14 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19402
Репутация:
4554
±
Замечаний:
±
Excel 365 & Mac Excel
У Вас первый If не закрыт End If
У Вас первый If не закрыт End If Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение У Вас первый If не закрыт End If Автор - Pelena Дата добавления - 18.12.2014 в 20:14
Lebron300
Дата: Четверг, 18.12.2014, 20:16 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
40% ±
Excel 2003
Pelena , закрыт же[vba]Код
st = "Средняя степень тяжести" End If
[/vba]
Pelena , закрыт же[vba]Код
st = "Средняя степень тяжести" End If
[/vba]Lebron300
Ответить
Сообщение Pelena , закрыт же[vba]Код
st = "Средняя степень тяжести" End If
[/vba]Автор - Lebron300 Дата добавления - 18.12.2014 в 20:16
Pelena
Дата: Четверг, 18.12.2014, 20:18 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19402
Репутация:
4554
±
Замечаний:
±
Excel 365 & Mac Excel
Это внутренний If, вот после него добавьте ещё один End If [vba]Код
st = "Средняя степень тяжести" End If End If
[/vba]
Это внутренний If, вот после него добавьте ещё один End If [vba]Код
st = "Средняя степень тяжести" End If End If
[/vba] Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Это внутренний If, вот после него добавьте ещё один End If [vba]Код
st = "Средняя степень тяжести" End If End If
[/vba] Автор - Pelena Дата добавления - 18.12.2014 в 20:18
Lebron300
Дата: Четверг, 18.12.2014, 20:26 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
40% ±
Excel 2003
Pelena, да точно... но теперь он мне только тип выводит, как сделать чтобы и степень тяжести тоже выводил
Pelena, да точно... но теперь он мне только тип выводит, как сделать чтобы и степень тяжести тоже выводил Lebron300
Ответить
Сообщение Pelena, да точно... но теперь он мне только тип выводит, как сделать чтобы и степень тяжести тоже выводил Автор - Lebron300 Дата добавления - 18.12.2014 в 20:26
Pelena
Дата: Четверг, 18.12.2014, 20:34 |
Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19402
Репутация:
4554
±
Замечаний:
±
Excel 365 & Mac Excel
А для степени тяжести у Вас и не предусмотрен вывод. В каком виде это должно выводится?
А для степени тяжести у Вас и не предусмотрен вывод. В каком виде это должно выводится? Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение А для степени тяжести у Вас и не предусмотрен вывод. В каком виде это должно выводится? Автор - Pelena Дата добавления - 18.12.2014 в 20:34
Lebron300
Дата: Четверг, 18.12.2014, 20:38 |
Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
40% ±
Excel 2003
Pelena , Пациент болен. Сахарный диабет Средняя степень тяжести 1 типа... все в одном окошке
Pelena , Пациент болен. Сахарный диабет Средняя степень тяжести 1 типа... все в одном окошкеLebron300
Ответить
Сообщение Pelena , Пациент болен. Сахарный диабет Средняя степень тяжести 1 типа... все в одном окошкеАвтор - Lebron300 Дата добавления - 18.12.2014 в 20:38
Pelena
Дата: Четверг, 18.12.2014, 20:41 |
Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19402
Репутация:
4554
±
Замечаний:
±
Excel 365 & Mac Excel
[vba]Код
If Val(TextBox5.Text) <= 3 Then st = st & " " & "1 типа" ElseIf Val(TextBox5.Text) > 3 Then st = st & " " & "2 типа" End If
[/vba]
[vba]Код
If Val(TextBox5.Text) <= 3 Then st = st & " " & "1 типа" ElseIf Val(TextBox5.Text) > 3 Then st = st & " " & "2 типа" End If
[/vba] Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение [vba]Код
If Val(TextBox5.Text) <= 3 Then st = st & " " & "1 типа" ElseIf Val(TextBox5.Text) > 3 Then st = st & " " & "2 типа" End If
[/vba] Автор - Pelena Дата добавления - 18.12.2014 в 20:41
Lebron300
Дата: Четверг, 18.12.2014, 20:45 |
Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
40% ±
Excel 2003
Pelena , огромное спасибо))
Ответить
Сообщение Pelena , огромное спасибо))Автор - Lebron300 Дата добавления - 18.12.2014 в 20:45