Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос останавливается с ошибкой Next без For - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос останавливается с ошибкой Next без For (Макросы/Sub)
Макрос останавливается с ошибкой 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]
К сообщению приложен файл: 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
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
У Вас первый If не закрыт End If


"Черт возьми, Холмс! Но как??!!"
Ю-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
Дата добавления - 18.12.2014 в 20:16
Pelena Дата: Четверг, 18.12.2014, 20:18 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Это внутренний If, вот после него добавьте ещё один End If
[vba]
Код
    st = "Средняя степень тяжести"
End If
End If
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-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
Дата добавления - 18.12.2014 в 20:26
Pelena Дата: Четверг, 18.12.2014, 20:34 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
А для степени тяжести у Вас и не предусмотрен вывод. В каком виде это должно выводится?


"Черт возьми, Холмс! Но как??!!"
Ю-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
Дата добавления - 18.12.2014 в 20:38
Pelena Дата: Четверг, 18.12.2014, 20:41 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

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]


"Черт возьми, Холмс! Но как??!!"
Ю-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
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос останавливается с ошибкой Next без For (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!