Информатика
Ответ есть!

Не выдает значение y, в чем дело?

Sub Main()
Dim x As single, y As single, t As single
x = Sheets("Лист3").Cells(4, 2)
If x < 0.5 And t = 2.2 Then
y = (Log(x) ^ 3 + x ^ 2) / Sqr(x + t)
Else
If x = 0.5 And t = 2.2 Then
y = Sqr(x + t) + 1 / x
Else
If x > 0.5 And t = 2.2 Then
y = Cos(x) + t * Sin(x) ^ 2
End If
End If
End If
Sheets("Лист3").Cells(4, 3) = y
End Sub

Не выдает значение y, в чем дело?<br /><br /> Sub Main() <br /> Dim x As single, y As single, t As single<br /> x = Sheets(Лист3).Cells(4, 2)<br /> If x < 0.5 And t = 2.2 Then<br /> y = (Log(x) ^ 3 + x ^ 2) / Sqr(x + t)<br /> Else<br /> If x = 0.5 And t = 2.2 Then<br /> y = Sqr(x + t) + 1 / x<br /> Else<br /> If x > 0.5 And t = 2.2 Then<br /> y = Cos(x) + t * Sin(x) ^ 2<br /> End If<br /> End If<br /> End If<br /> Sheets(Лист3).Cells(4, 3) = y<br /> End Sub <br /><br />
105
Ответы
У Вас значение "у" вычисляется для заданного "х" только при условии, что t=2.2. Но значение t у Вас не присваивается, а в этих случаях VBA полагает, что значение числовой переменной равно нулю. Следовательно, ни одна ветка для вычисления "у" не отрабатывает и "у" также не получает значения. Аналогично "t", значение переменной "у" также будет считаться равным нулю и именно этот ноль будет занесен в ячейку "С4". А если у Вас там установлен формат "отображать нулевые значения, как пустые", Вы вообще не увидите результата работы программы.
50
Ответ получен: