2015-05-29 1 views
-1

Я хочу, чтобы отобразить другое окно сообщения, когда оно выполняется следующее требование:Как отображать другое окно сообщения, когда встречаются условия

  1. Когда значение textbox8 меньше 3, появится сообщение об textbox8 вне диапазона , пользователь хочет продолжить сохранение данных, если пользователь нажмет «да», а затем сохранит данные, но если пользователь выберет «нет», попросит пользователя повторно ввести значение textbox8, а затем сохранить данные.

  2. Если значение textbox8 находится в пределах от 3 до 3.2, окно сообщения покажет, что текстовое поле8 находится между 3 и 3.2, обратите внимание, и покажите кнопку ОК, чтобы пользователь мог щелкнуть и сохранить данные.

Я попытался добавить другое окно сообщения внутри, но он будет проверять только первое условие.

Sheets("Overall").Activate  
With Me 
    If Len(.ComboBox5.Value) * Len(.TextBox4.Value) * Len(.TextBox5.Value) * Len(.TextBox6.Value) * Len(.ComboBox6.Value) * Len(.TextBox7.Value) * Len(.TextBox8.Value) = 0 Then 
     MsgBox "Please Complete All Fields Before Submit" 
    Else 

     If CSng(.TextBox8.Text) < 3 Then 
      If MsgBox("TextBox8 less than 3.0" & vbLf & vbLf & _ 
         "Do you wish to continue?", vbYesNo, "Exceeds") = vbNo Then 

       MsgBox "user to re-type the value in TextBox8.", vbInformation, "Title" 

       TextBox8.SetFocus 

          Else 

     If CSng(.TextBox8.Text) >= 3 And CSng(.TextBox8.Text) <= 3.2 Then 

     MsgBox "TextBox8 between 3 to 3.2, Aware!!!", , "Alert" 


        Exit Sub 

     End If 
     End If 
     End If 
     eRow = Sheet4.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 
       Cells(eRow, 11).Value = ComboBox5.Text 
       Cells(eRow, 7).Value = TextBox4.Text 
       Cells(eRow, 8).Value = TextBox5.Text 
       Cells(eRow, 14).Value = TextBox6.Text 
       Cells(eRow, 16).Value = ComboBox6.Text 
       Cells(eRow, 12).Value = TextBox7.Text 
       Cells(eRow, 13).Value = TextBox8.Text 
       Cells(eRow, 19).Value = TextBox9.Text 

    End If 
End With 
End Sub 
+2

Пожалуйста, пожалуйста, исправьте свой отступ. Ваш «Конец, если' есть * повсюду *. (и я предполагаю, что корень вашей проблемы в том, что их размещение неверно ...) –

+0

В середине появляется «Exit Sub», и много «End If's's». Вы можете исправить? – shruti1810

+0

@ shruti1810 Привет, я исправлю это, извините, потому что у меня все еще есть несколько кодов, чтобы проверить других на вершине. Я попытался настроить Exit Sub, но он сохранит данные, хотя я нажимаю No, чтобы повторно ввести значение в textbox8 – Kimberly

ответ

0

Эта строка кода If CSng(.TextBox8.Text) >= 3 And CSng(.TextBox8.Text) <= 3.2 Then не должен быть в пределах блока If CSng(.TextBox8.Text) < 3 Then кода. Если изменить код и исправить отступы, код выглядит следующим образом:

Sheets("Overall").Activate 
    With Me 
     If Len(.ComboBox5.Value) * Len(.TextBox4.Value) * Len(.TextBox5.Value) * Len(.TextBox6.Value) * Len(.ComboBox6.Value) * Len(.TextBox7.Value) * Len(.TextBox8.Value) = 0 Then 
      MsgBox "Please Complete All Fields Before Submit" 
     Else  ' If Len(.ComboBox5.Value) * Len(.TextBox4.Value) 
      If CSng(.TextBox8.Text) < 3 Then 
       If MsgBox("TextBox8 less than 3.0" & vbLf & vbLf & _ 
          "Do you wish to continue?", vbYesNo, "Exceeds") = vbNo Then 

        MsgBox "user to re-type the value in TextBox8.", vbInformation, "Title" 
        TextBox8.SetFocus 

       End If  ' If MsgBox("TextBox8 less than 3.0" 
      End If  ' If CSng(.TextBox8.Text) < 3 Then 

      If CSng(.TextBox8.Text) >= 3 And CSng(.TextBox8.Text) <= 3.2 Then 

       MsgBox "TextBox8 between 3 to 3.2, Aware!!!", , "Alert" 
       Exit Sub 

      End If  ' If CSng(.TextBox8.Text) >= 3 And 

      eRow = Sheet4.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 
        Cells(eRow, 11).Value = ComboBox5.Text 
        Cells(eRow, 7).Value = TextBox4.Text 
        Cells(eRow, 8).Value = TextBox5.Text 
        Cells(eRow, 14).Value = TextBox6.Text 
        Cells(eRow, 16).Value = ComboBox6.Text 
        Cells(eRow, 12).Value = TextBox7.Text 
        Cells(eRow, 13).Value = TextBox8.Text 
        Cells(eRow, 19).Value = TextBox9.Text 

     End If  ' If Len(.ComboBox5.Value) * Len(.TextBox4.Value) 
    End With 
End Sub 

Если вы обнаружили, что есть много If блоков кода вы также можете добавить комментарии к Else и End If линии, чтобы показать, какой If к которой они принадлежат. Я сделал это в коде выше.

Смежные вопросы