Другие языки программирования и технологии

Программирование в Excel - VBA

Подскажите как написать программку:

В одной программе с помощью условного
оператора IF организовать расчет функции y по трем
различным формулам в зависимости от значения аргумента x,
введенного с клавиатуры в диалоговом режиме. Вывод исходных данных и
результатов организовать на лист Excel, сопроводив их необходимыми
комментариями. Запустив программу несколько раз, поочередно проверить результат
ее работы при указанных в таблице контрольных значениях x. Предусмотреть для каждого
введенного значения x вывод номера ветви для расчета и
полученного значения y в отдельные ячейки Excel согласно образцу,
приведенному ниже. Для этого рекомендуется в программе оператор вывода записать
в каждую ветвь оператора IF после расчета соответствующего значения y.сама функция вот:

вот что я сделала, но выдаются ошибки, подскажите что исправитьSub 30835_8_2()
Dim x As Single, y As Single
Dim x1 As Single, x2 As Single, x3 As Single
Dim y1 As Single, y2 As Single, y3 As Single
Const a = 2
x = Val(InputBox("Введите x"))
If (x < a) Then y = 1 + Sqr(a * x)
x1 = x
y1 = y
Else: If (x = a) Then y = Sqr(a) + Log(x ^ 2)
x2 = x
y2 = y
Else
y = Sin(a * x)
x3 = x
y3 = y
End If
End If
Cells(13, 12) = "При x = " & x1
Cells(13, 13) = "y = " & y1
Cells(14, 12) = "При x = " & x2
Cells(14, 13) = "y = " & y2
Cells(15, 12) = "При x = " & x3
Cells(15, 13) = "y = " & y3
MsgBox "При x = " & x
MsgBox "y = " & y
End Sub
SS
Sagara Sosuce
161
по моему так (без красивок, конечно, но работает) :
Sub ffg()
Dim x, y As Single '- можно сразу описать все однотипные переменные перечисляя их через запятую, описывать "a=2" не вижу смысла, во всяком случае по данному примеру,

x = Val(InputBox("Введите x"))

If x < 2 Then
y = 1 + Sqr(2 * x)

Cells(13, 12) = "При x = " & x
Cells(13, 13) = "y = " & y
ElseIf x = 2 Then' - пишется в одно слово
y = Sqr(2) + Log(x ^ 2)

Cells(14, 12) = "При x = " & x

Cells(14, 13) = "y = " & y
Else
y = Sin(2 * x)

Cells(15, 12) = "При x = " & x

Cells(15, 13) = "y = " & y
End If

MsgBox x
MsgBox y
end sub
Михаил Глади
Михаил Глади
2 652
Лучший ответ
Для начала надо пояснить, какие ошибки выводятся и где.

Код надо запостить на сайт pastebin.com а сюда кинуть ссылку.
Иначе его трудно читать. Хотя если Вы, как говорится, не привыкли ставить отступ слева внутри Sub..End Sub, то и это мало поможет.

Поймите, у нас не бесконечно много времени, и скорее мы займёмся тем, за что нам платят или что нам интересно, чем разбором какого-то мутного кода с каким-то непонятными ошибками.