Вычисление выражения

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

13 окт 2004, 17:29

Есть 2 ячейки. В одной текст вида "2+3*5,5", надо в другую получить результат, причём хотелось бы без нажатия кнопок. Т. е. в одну ячейку вписывается формула, а в другой автоматом результат... Может было уже, тогда извиняюсь.
ShiZa
Сообщения: 4
Зарегистрирован: 06 окт 2004, 22:18

13 окт 2004, 23:56

хм. а если в процессе образовалось 2*(3-1 и скобка еще не закрыта? что должно быть? или что-нить в этом роде.
если это Excel, то можно повесить на смену ячейки, а если не он, то где это реализовать надо? вообще такая задача решается с помощью конечного детерминированного автомата, например. могу написать подробнее, если хочется.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

14 окт 2004, 08:44

В MSExcel уже встроен автомат, надо его использовать!
Игорь, поставьте перед выражением знак = и все будет рассчитано после нажатия Enter.

Если нужно чтобы формула оставалась видна, то на событие Change можно написать макрос, который в соседнюю ячейку вписывает то же самое, но со знаком "=" впереди.
причём хотелось бы без нажатия кнопок.
Ну уж совсем без нажатия никак не выйдет. Ячейка редактируется, и по нажатию Enter все рассчитывается. Только так.

Можно еще создать форму, которая работает как OnLine калькулятор.
Там тоже понадобится один макрос на изменение текста в текстовом поле.
Тогда действительно выражение будет вычисляться по мере его набора.
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

15 окт 2004, 16:32

Naeel Maqsudov писал(а):поставьте перед выражением знак = и все будет рассчитано после нажатия Enter.
:D Не ну я ж не настолько чайник.
Суть ещё более автоматизировать юзерам работу, сейчас человек вводит в ячейку формулу, потом давит комбинацию на вызов макроса, который как раз и копирует со знаком "=" в соседнюю ячейку.
А за идею спасибо, про OnChange я недопёр...
Ответить