Добрый день, уважаемые форумчане.
Подскажите в чем разница в записи сложного условия IF, почему в двух вариантах (с добавлением переменной) оператор проходит верно, а без - нет?
Подскажите в чем разница в записи сложного условия IF, почему в двух вариантах (с добавлением переменной) оператор проходит верно, а без - нет?
Код |
---|
Function ChekKorridors() Dim a As Byte, b As Byte, c As Byte, d As Byte a = ThisWorkbook.Worksheets("Temp and RH").Cells(7, 9) b = ThisWorkbook.Worksheets("Temp and RH").Cells(7, 10) c = ThisWorkbook.Worksheets("Temp and RH").Cells(7, 11) d = ThisWorkbook.Worksheets("Temp and RH").Cells(7, 12) ' 1 вариант - отрабатывает верно If UserForm1.ComboBox2.Value < a Then MsgBox "Entered parameters (1) are out of range", vbCritical, "Error" End If If UserForm1.ComboBox4.Value > b Then MsgBox "Entered parameters (2) are out of range", vbCritical, "Error" End If If UserForm1.ComboBox3.Value < c Then MsgBox "Entered parameters (3) are out of range", vbCritical, "Error" End If If UserForm1.ComboBox5.Value > d Then MsgBox "Entered parameters (4) are out of range", vbCritical, "Error" End If ' 2 вариант - отрабатывает верно If UserForm1.ComboBox2.Value < a _ Or UserForm1.ComboBox4.Value > b _ Or UserForm1.ComboBox3.Value < c _ Or UserForm1.ComboBox5.Value > d Then MsgBox "Entered parameters are out of range", vbCritical, "Error" ChekKorridors = 0 Else ChekKorridors = 1 End If ' 3 вариант - отрабатывает не верно If UserForm1.ComboBox2.Value < ThisWorkbook.Worksheets("Temp and RH").Cells(7, 9).Value _ Or UserForm1.ComboBox4.Value > ThisWorkbook.Worksheets("Temp and RH").Cells(7, 10).Value _ Or UserForm1.ComboBox3.Value < ThisWorkbook.Worksheets("Temp and RH").Cells(7, 11).Value _ Or UserForm1.ComboBox5.Value > ThisWorkbook.Worksheets("Temp and RH").Cells(7, 12).Value Then MsgBox "Entered parameters are out of range", vbCritical, "Error" ChekKorridors = 0 Else ChekKorridors = 1 End If End Function |