Привет всем, вот такой "код", проблема в том что когда вводишь значение "1" пишет: "функция не существует", так и надо, но потом пишет ответ предыдущего решения, в чем проблема?
Код
Dim x, y As Single
Sub ghrt ()
x = Val(InputBox("Введите значение"))
If x <> 1 Then y = 1 / ((x ^ 2) - 1) Else MsgBox "Функция не существует"
MsgBox y
End Sub
Переменные заданы для модуля, поэтому их значение сохраняется.
Если переменные используются только в этой процедуре, их нужно определять в теле процедуры, после строки Sub...
В VBA нужно задавать тип каждой переменной. В Вашей записи x имеет тип Value
Выводите сообщение только при наличии результата:
If x <> 1 Then
y = 1 / ((x ^ 2) - 1)
MsgBox y
Else
MsgBox "Функция не существует"
End If
Или так
Sub ghrt ()
x = Val(InputBox("Введите значение"))
If x <> 1 Then y = 1 / ((x ^ 2) - 1) Else y = "Функция не существует"
MsgBox y
End Sub
Саня, тут подозрение, что у не должна меняться, если х=1, т.к. переменные вынесены за пределы процедуры. Но, больше всего, что это ошибочно.