Не выдает значение y, в чем дело? Sub Main() Dim x As single, y As single, t As single x...

0 интересует 0 не интересует
146 просмотров

Не выдает значение 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


image

спросил от (58 баллов) в категории Информатика
оставил комментарий от
0 0

У тебя условия срабатывают только при t = 2,2. Так выдаёт ноль. Почему пишешь, что не выдаёт?

1 Ответ
0 интересует 0 не интересует
ответил от БОГ (150k баллов)
 
Лучший ответ

У Вас значение "у" вычисляется для заданного "х" только при условии, что t=2.2. Но значение t у Вас не присваивается, а в этих случаях VBA полагает, что значение числовой переменной равно нулю. Следовательно, ни одна ветка для вычисления "у" не отрабатывает и "у" также не получает значения. Аналогично "t", значение переменной "у" также будет считаться равным нулю и именно этот ноль будет занесен в ячейку "С4". А если у Вас там установлен формат "отображать нулевые значения, как пустые", Вы вообще не увидите результата работы программы.

оставил комментарий от (58 баллов)
0 0

Ок, спасибо, как присвоить значение t, чтобы ветки не занулялись

оставил комментарий от
0 0

Так же, как ты присваиваешь x.

...