Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
AlexanderMich
0 / 0 / 0
Регистрация: 16.02.2016
Сообщений: 6
1

Ввод формулы через textbox

16.02.2016, 15:00. Просмотров 1378. Ответов 5
Метки нет (Все метки)

Здравствуйте, уважаемые посетители форума. Я пока что пользователь не опытный и vba знаю плохо, так что за глупые вопросы не корите)) Мне нужна ваша помощь вот в чем. Хотелось бы сделать ввод формулы в программу через userform с помощью textbox. Например, у меня есть TextBox1 и TextBox2, в 1 я вписываю какое-либо значение, например 2. В коде пишу x = Val(TextBox1.Text), соответственно х присваивается значение 2. Далее пишу в TextBox2 какую-либо формулу, например "х^2" или "sin(x)", и эта формула присваивается, допустим, переменной y. Подскажите, пожалуйста, возможно ли такое реализовать и если да, то как. Я пробовал через функцию evaluate, но она считает только числа, "2+2", "2^3" и тд, то есть работает по сути как калькулятор, а вот если вписать "х-2", то выдаёт ошибку. Надеюсь на ваши объяснения и помощь.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2016, 15:00
Ответы с готовыми решениями:

Написать программу, осуществив ввод одномерного массива через TextBox, а вывод результатов в Label
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)...

Как в VBA в поле Textbox сделать запрет на ввод более одного слова (или запрет на ввод пробелов)?
Добрый день. Нужно, чтобы в поле TextBox можно было ввести не более одного...

Ввод значений из TextBox в ListBox
Всем доброго времени суток! По заданию мне нужно создать форму, в которой...

Ввод числовых данных в TextBox
Подскажите пожалуйста, как сделать так чтобы в поле TextBox можно было вводить...

Создание проверки на ввод цифр в TextBox
В TextBox нужно чтобы вводились тока цифры, и чтобы если ввели неправильно...

5
Казанский
14156 / 5854 / 1536
Регистрация: 24.09.2011
Сообщений: 9,202
16.02.2016, 16:40 2
Цитата Сообщение от AlexanderMich Посмотреть сообщение
Я пробовал через функцию evaluate, но она считает только числа, "2+2", "2^3" и тд, то есть работает по сути как калькулятор, а вот если вписать "х-2", то выдаёт ошибку
Evaluate работает с пространством имен Excel, этот метод не знает про x в VBA. Можно создать имя х в пространстве имен Excel, тогда Evaluate будет с ним работать:
Visual Basic
1
2
application.Names.Add "x","=5"
msgbox evaluate("x-2")
1
AlexanderMich
0 / 0 / 0
Регистрация: 16.02.2016
Сообщений: 6
16.02.2016, 16:55  [ТС] 3
Спасибо))
Подскажите еще, а как теперь можно сделать, чтобы значение х так же задавалось формы?
0
Казанский
14156 / 5854 / 1536
Регистрация: 24.09.2011
Сообщений: 9,202
16.02.2016, 17:08 4
Лучший ответ Сообщение было отмечено AlexanderMich как решение

Решение

AlexanderMich, если отталкиваться от x = Val(TextBox1.Text) , т.е. дробные значения вводятся с точкой, то
Visual Basic
1
application.Names.Add "x","=" & TextBox1.Text
Чтобы дробные можно было вводить и с точкой, и с запятой
Visual Basic
1
application.Names.Add "x","=" & replace(TextBox1.Text,",",".")
1
AlexanderMich
0 / 0 / 0
Регистрация: 16.02.2016
Сообщений: 6
16.02.2016, 18:29  [ТС] 5
Спасибо вам еще раз большое

Добавлено через 1 час 15 минут
Можете, пожалуйста, еще подсказать
Пытаюсь сделать такой цикл для вывода элементов массива

x = Val(TextBox1.Text)
h = Val(TextBox2.Text)
p = 6
ReDim u(p)
For i = 0 To p
Application.Names.Add "x", "=" & x
d = TextBox3.Text
u(i) = Evaluate(d)
MsgBox (u(i))
x = x + h
Next i

Однако, если х принимает не целое значение, выдает "run-time error 1004 ошибка в формуле"
В чем проблема?
0
Казанский
14156 / 5854 / 1536
Регистрация: 24.09.2011
Сообщений: 9,202
16.02.2016, 18:49 6
AlexanderMich,
Visual Basic
1
Application.Names.Add "x", "=" & Str(x)
1
16.02.2016, 18:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2016, 18:49

Разрешить ввод в TextBox только цифр
у меня есть код ввода только цифр, при вводе буквы выходит ошибка, как сделать,...

Обеспечить корректный ввод даты в TextBox
Подскажите пожалуйста как сделать так чтобы в поле пользователь вводя дату не...

Ввод в Textbox только чисел (фильтрация ввода)
Подскажите, как грамотно организовать фильтрацию ввода символов в TextBox?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru