У меня возникает ошибка в том случаи когда одно из полей TextBox - пустое, когда пользователь из него все удалил. (имеются введу цифры) Как бы мне исправить данную ошибку.
Присылаю кусок когда. И прилагаю файл. [vba]
Код
Option Explicit Dim Rezultat As Long
Private Sub TextBoxDya1_Change() Raschet End Sub Private Sub TextBoxDya2_Change() Raschet End Sub Function Raschet()
'For y = 1 To 12 ' Проставляем дни недели из массива в месяце. 'If CInt(iArr(y)) <> 0 Then ' Массив содержащий номера тех месяцев что используются в МП If Me.TextBoxDya1.Value = 0 Or Me.TextBoxDya2.Value = 0 Or Me.TextBoxDya1.Value > Me.TextBoxDya2.Value Then Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный ElseIf Me.TextBoxDya1.Value <> "" Or Me.TextBoxDya2.Value <> "" Then Me.TextBoxDya1.BackColor = RGB(255, 255, 255) ' Белый Me.TextBoxDya2.BackColor = RGB(255, 255, 255) ' Белый Rezultat = Me.TextBoxDya2.Value - Me.TextBoxDya1.Value Me.Label1.Caption = Rezultat End If 'End If 'Next y End Function
И еще вопрос, почему срабатывает условие и закрашивает крассным BackColor. Когда вводишь 5,6,7,8 или 9 в TextBox1
Помогите пожалуйста c решением такой задачи.
У меня возникает ошибка в том случаи когда одно из полей TextBox - пустое, когда пользователь из него все удалил. (имеются введу цифры) Как бы мне исправить данную ошибку.
Присылаю кусок когда. И прилагаю файл. [vba]
Код
Option Explicit Dim Rezultat As Long
Private Sub TextBoxDya1_Change() Raschet End Sub Private Sub TextBoxDya2_Change() Raschet End Sub Function Raschet()
'For y = 1 To 12 ' Проставляем дни недели из массива в месяце. 'If CInt(iArr(y)) <> 0 Then ' Массив содержащий номера тех месяцев что используются в МП If Me.TextBoxDya1.Value = 0 Or Me.TextBoxDya2.Value = 0 Or Me.TextBoxDya1.Value > Me.TextBoxDya2.Value Then Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный ElseIf Me.TextBoxDya1.Value <> "" Or Me.TextBoxDya2.Value <> "" Then Me.TextBoxDya1.BackColor = RGB(255, 255, 255) ' Белый Me.TextBoxDya2.BackColor = RGB(255, 255, 255) ' Белый Rezultat = Me.TextBoxDya2.Value - Me.TextBoxDya1.Value Me.Label1.Caption = Rezultat End If 'End If 'Next y End Function
ВСЕ! Я сам справился. Ошибку не выдает. Затупил короче.
Однако вопрос почему TextBox закрашивается красным при условии Tckb TextBox1 > TextBox2 (5 > 30) - ведь 5 ни как не больше 30, но почему срабатывает условие??
[vba]
Код
If Me.TextBoxDya1.Value > Me.TextBoxDya2.Value Or Me.TextBoxDya1.Value = 0 Or Me.TextBoxDya2.Value = 0 Then Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный ElseIf Me.TextBoxDya1.Value = "" Or Me.TextBoxDya2.Value = "" Then Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный Else Me.TextBoxDya1.BackColor = RGB(255, 255, 255) ' Белый Me.TextBoxDya2.BackColor = RGB(255, 255, 255) ' Белый Rezultat = Me.TextBoxDya2.Value - Me.TextBoxDya1.Value Me.Label1.Caption = Rezultat End If
[/vba]
ВСЕ! Я сам справился. Ошибку не выдает. Затупил короче.
Однако вопрос почему TextBox закрашивается красным при условии Tckb TextBox1 > TextBox2 (5 > 30) - ведь 5 ни как не больше 30, но почему срабатывает условие??
[vba]
Код
If Me.TextBoxDya1.Value > Me.TextBoxDya2.Value Or Me.TextBoxDya1.Value = 0 Or Me.TextBoxDya2.Value = 0 Then Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный ElseIf Me.TextBoxDya1.Value = "" Or Me.TextBoxDya2.Value = "" Then Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный Else Me.TextBoxDya1.BackColor = RGB(255, 255, 255) ' Белый Me.TextBoxDya2.BackColor = RGB(255, 255, 255) ' Белый Rezultat = Me.TextBoxDya2.Value - Me.TextBoxDya1.Value Me.Label1.Caption = Rezultat End If