VBA в программном коде выдает ошибку помогите разобраться, пожалуйста, чт

программирование программы VBA

Постановка задачи: Составить программу, которая вычисляет значение Y по заданной формуле. Ввод исходных данных и вывод результата произвести с использованием:
1) Ячеек рабочего листа Excel;
2) Окон ввода/вывода (использовать различные форматы вывода)

Invalid procedure call or argument (Error 5) -ошибка в строке Y=

Sub Main()
Dim x As Double, b As Double, y As Double
Dim q As Double, z As Double, c As Double
x = Val(InputBox("Введите x=")) 'ввод значения переменной x
b = Val(InputBox("Введите b=")) 'ввод значения переменной b
q=2 * x – 5
z= Sqr(4 * x)
c= x - b
Y = (Abs(Exp(q) * Exp(z))) / ((2 * Atn(Sqr((1 - X) / (1 + X)))) ^ 3 + Atn(Sqr(B)) * Log(c) ^ 3) ‘вычисляем значение y
MsgBox("y="+Format(y, "scientific"))
End Sub
Private Sub CommandButton1_Click()
Dim x As Double, b As Double, y As Double
Dim q As Double, z As Double, c As Double
x = Cells(3, 1) ‘присваиваем значение переменной x
b = Cells(3, 2) ‘присваиваем значение переменной b
q=2 * x – 5
z= Sqr(4 * x)
c= x - b
Y = (Abs(Exp(q) * Exp(z))) / ((2 * Atn(Sqr((1 - X) / (1 + X)))) ^ 3 + Atn(Sqr(B)) * Log(c) ^ 3) ‘вычисляем y
Cells(5, 2) = y ‘выводим y
End Sub

Примечание:
Спасибо, но ошибка не ушла - осталась там же.

Примечание:
Переделала - но к сожалению ошибка та же.

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

Примечание:
(2 * Atn(Sqr((1 - X) / (1 + X)))) ^ 3 - это изначально было arccos(x)^3 (арккосинус в кубе) , но поскольку в VBA нет такой функции - пришлось выразить через Arctg.

arccos x = 2 arctg (sqrt (1-x)/(1+x))

Получается область определения x [-1;1] - значит надо ставить ограничения при вводе значения?
Ответы:
MsgBox("y=" & Format(y, "scientific"))


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.