Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вычислить "математический" текст - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вычислить "математический" текст (Макросы/Sub)
Вычислить "математический" текст
Nic70y Дата: Пятница, 01.11.2019, 21:32 | Сообщение № 1
Группа: Друзья
Ранг: Экселист
Сообщений: 6158
Репутация: 1361 ±
Замечаний: 0% ±

ru13;10;03
Драсте!
Подскажите пжл. тупорылому.
есть выражение в виде текста, типа:
(1+2)*18+(3/4) и т.д.
его нужно вычислить не используя функцию ВЫЧИСЛИТЬ (ни какую)
кроме как ПОИСК и ЦИКЛ в голову ничё не лезет (завал на работе + гуглопоиск барахлит и еще куча отмазок)
за_ранее спс.


Яндекс Деньги 41001841029809
 
Ответить
СообщениеДрасте!
Подскажите пжл. тупорылому.
есть выражение в виде текста, типа:
(1+2)*18+(3/4) и т.д.
его нужно вычислить не используя функцию ВЫЧИСЛИТЬ (ни какую)
кроме как ПОИСК и ЦИКЛ в голову ничё не лезет (завал на работе + гуглопоиск барахлит и еще куча отмазок)
за_ранее спс.

Автор - Nic70y
Дата добавления - 01.11.2019 в 21:32
bmv98rus Дата: Пятница, 01.11.2019, 22:11 | Сообщение № 2
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 3021
Репутация: 525 ±
Замечаний: 0% ±

Excel 2013/2016
его нужно вычислить не используя функцию ВЫЧИСЛИТЬ
в чем глубокий смысл? Анализатор не так прост получится. Может не поиск а Split но все равно не просто.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
его нужно вычислить не используя функцию ВЫЧИСЛИТЬ
в чем глубокий смысл? Анализатор не так прост получится. Может не поиск а Split но все равно не просто.

Автор - bmv98rus
Дата добавления - 01.11.2019 в 22:11
Nic70y Дата: Пятница, 01.11.2019, 22:14 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 6158
Репутация: 1361 ±
Замечаний: 0% ±

ru13;10;03
в чем глубокий смысл?
студенческий вопрос...


Яндекс Деньги 41001841029809
 
Ответить
Сообщение
в чем глубокий смысл?
студенческий вопрос...

Автор - Nic70y
Дата добавления - 01.11.2019 в 22:14
Pelena Дата: Пятница, 01.11.2019, 22:29 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 15794
Репутация: 3440 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
студенческий вопрос...

знак равно впереди поставить и Enter нажать не вариант? :D


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщение
студенческий вопрос...

знак равно впереди поставить и Enter нажать не вариант? :D

Автор - Pelena
Дата добавления - 01.11.2019 в 22:29
Nic70y Дата: Пятница, 01.11.2019, 22:35 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 6158
Репутация: 1361 ±
Замечаний: 0% ±

ru13;10;03
Только шел с обкурки и хотел дописать апдЭйт, что
знак равно впереди
тоже не канает, тока внутри кода :(


Яндекс Деньги 41001841029809
 
Ответить
СообщениеТолько шел с обкурки и хотел дописать апдЭйт, что
знак равно впереди
тоже не канает, тока внутри кода :(

Автор - Nic70y
Дата добавления - 01.11.2019 в 22:35
Pelena Дата: Пятница, 01.11.2019, 22:57 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 15794
Репутация: 3440 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Ну, знак равно и внутри кода можно поставить
[vba]
Код
a = "(1+2)*18+(3/4)"
Range("A1").Formula = "=" & a
b=Range("A1").Value
Range("A1").Clear
[/vba]


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеНу, знак равно и внутри кода можно поставить
[vba]
Код
a = "(1+2)*18+(3/4)"
Range("A1").Formula = "=" & a
b=Range("A1").Value
Range("A1").Clear
[/vba]

Автор - Pelena
Дата добавления - 01.11.2019 в 22:57
doober Дата: Пятница, 01.11.2019, 23:21 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 644
Репутация: 253 ±
Замечаний: 0% ±

Excel 2010


 
Ответить
СообщениеИщите в гугле
Интерпретатор математических формул на VB

Автор - doober
Дата добавления - 01.11.2019 в 23:21
RAN Дата: Суббота, 02.11.2019, 10:13 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5301
Репутация: 1063 ±
Замечаний: 0% ±

2010
Ни единого намека на вычислить, и никаких "=" вне кода.
Правда, ведмедь обозвал этот код "извращенцем" :'( :D
[vba]
Код
Sub Create_NewModule()
    Dim objVBComp As Object, objCodeMod As Object
    Dim sCodeLines As String
    Dim lLineNum As Long
    Set objVBComp = ActiveWorkbook.VBProject.VBComponents.Add(1)
    Set objCodeMod = objVBComp.CodeModule
    lLineNum = objCodeMod.CountOfLines + 1
    sCodeLines = "MsgBox(" & [A1] & ")"
'    sCodeLines = "MsgBox((1 + 2) * 18 + (3 / 4))"
    sCodeLines = "Sub Test()" & vbCrLf & _
                 sCodeLines & vbCrLf & _
                 "End Sub"
    objCodeMod.InsertLines lLineNum, sCodeLines
    Application.Run "Test"
    objVBComp.Collection.Remove objVBComp
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНи единого намека на вычислить, и никаких "=" вне кода.
Правда, ведмедь обозвал этот код "извращенцем" :'( :D
[vba]
Код
Sub Create_NewModule()
    Dim objVBComp As Object, objCodeMod As Object
    Dim sCodeLines As String
    Dim lLineNum As Long
    Set objVBComp = ActiveWorkbook.VBProject.VBComponents.Add(1)
    Set objCodeMod = objVBComp.CodeModule
    lLineNum = objCodeMod.CountOfLines + 1
    sCodeLines = "MsgBox(" & [A1] & ")"
'    sCodeLines = "MsgBox((1 + 2) * 18 + (3 / 4))"
    sCodeLines = "Sub Test()" & vbCrLf & _
                 sCodeLines & vbCrLf & _
                 "End Sub"
    objCodeMod.InsertLines lLineNum, sCodeLines
    Application.Run "Test"
    objVBComp.Collection.Remove objVBComp
End Sub
[/vba]

Автор - RAN
Дата добавления - 02.11.2019 в 10:13
Nic70y Дата: Суббота, 02.11.2019, 10:29 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 6158
Репутация: 1361 ±
Замечаний: 0% ±

ru13;10;03
Андрей, спс.
и всем тоже.


Яндекс Деньги 41001841029809
 
Ответить
СообщениеАндрей, спс.
и всем тоже.

Автор - Nic70y
Дата добавления - 02.11.2019 в 10:29
bmv98rus Дата: Суббота, 02.11.2019, 10:31 | Сообщение № 10
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 3021
Репутация: 525 ±
Замечаний: 0% ±

Excel 2013/2016
Правда, ведмедь обозвал этот код "извращенцем"
нее, это сКОТский вариант. :D


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Правда, ведмедь обозвал этот код "извращенцем"
нее, это сКОТский вариант. :D

Автор - bmv98rus
Дата добавления - 02.11.2019 в 10:31
Nic70y Дата: Вторник, 31.12.2019, 16:41 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 6158
Репутация: 1361 ±
Замечаний: 0% ±

ru13;10;03
Прошу прошения за долгое молчание и "маленький обман"
код в ВБА не нужен был ни кому,
был нужен только алгоритм, для сочинения кода на Питон
и даже мой "правильный" вариант не понадобился
(он по какой-то причине не вставился в сообщение, прикладываю файл)
сессия была сдана на 5.
К сообщению приложен файл: 994__16.xls(48.0 Kb)


Яндекс Деньги 41001841029809
 
Ответить
СообщениеПрошу прошения за долгое молчание и "маленький обман"
код в ВБА не нужен был ни кому,
был нужен только алгоритм, для сочинения кода на Питон
и даже мой "правильный" вариант не понадобился
(он по какой-то причине не вставился в сообщение, прикладываю файл)
сессия была сдана на 5.

Автор - Nic70y
Дата добавления - 31.12.2019 в 16:41
krosav4ig Дата: Среда, 01.01.2020, 01:10 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 2291
Репутация: 960 ±
Замечаний: 0% ±

Excel 2007,2010,2013
хоть к excel это не имеет отношения, но, все же, если еще актуально
Nic70y, есть встроенная функция eval()
https://www.geeksforgeeks.org/eval-in-python/
https://towardsdatascience.com/python-....87db191
реализации алгоритма сортировочной станции
ну и https://habr.com/ru/post/273253/

С Новым Годом!


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениехоть к excel это не имеет отношения, но, все же, если еще актуально
Nic70y, есть встроенная функция eval()
https://www.geeksforgeeks.org/eval-in-python/
https://towardsdatascience.com/python-....87db191
реализации алгоритма сортировочной станции
ну и https://habr.com/ru/post/273253/

С Новым Годом!

Автор - krosav4ig
Дата добавления - 01.01.2020 в 01:10
Nic70y Дата: Четверг, 02.01.2020, 17:46 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 6158
Репутация: 1361 ±
Замечаний: 0% ±

ru13;10;03
С Новым Годом!
взаимно
eval()
ее использование было изначально запрещено использовать


Яндекс Деньги 41001841029809
 
Ответить
Сообщение
С Новым Годом!
взаимно
eval()
ее использование было изначально запрещено использовать

Автор - Nic70y
Дата добавления - 02.01.2020 в 17:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вычислить "математический" текст (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2020 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!