Тема: Как вычислить формулу, данную как текст?
Как может i оценить эту формулу ="="&3&"+"&5, так номер 8 появился бы?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как вычислить формулу, данную как текст?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как может i оценить эту формулу ="="&3&"+"&5, так номер 8 появился бы?
Привет!
Нет там действительно путь это могло быть вычислено?
'References: MS Script Control 1.0 (msscript.ocx) Sub Evalute() Dim scr As New ScriptControl Dim MathExpression As String Dim Result As Double MathExpression = "3+5" scr.Language = "VBScript" Err.Clear Result = scr.Eval(MathExpression) If Err <> 0 Then MsgBox "The entered expression is incorrect!", vbCritical Exit Sub Else MsgBox Result End If End Sub
Спасибо!
Когда i копировал это в VB окно редактора, ошибка возникла неожиданно! -> user-defined type not defined..
Я должен написать что-нибудь больше?
Я имею один больше вопрос.
Как могу я говорить VB, который ячейку придется проверить и вычислиться, если формула правильна, или код, который вы написали, вычисляет все текстовые формулы в Листе?
1. А эту библиотеку вы подключили к проекту: References: MS Script Control 1.0 (msscript.ocx)?
2. вычисляет все текстовые формулы , если они содержат корректное с точки зрения математики выражение.
Фактически вещь есть, что я имею формулу например "3*y+8", написанный как текст. Я имею где-нибудь в листовой ячейке, которая содержит значение "y" например 5. Затем, используя SUBTRACT я могу заменить y знак к реальному значению и добавить "=" знак к началу. Затем ячейка, когда не щелкается напоминал бы: =3*5+8..
И сейчас i пожелание это, чтобы быть вычисленным.
Есть еще один пример на похожую тему, я его когда-то нашел на этом форуме. К сожалению, не помню автора (или того кто на него навел...).
Здесь тоже вводится выражение в виде строки
a = InputBox("Simple Calculation")
и вычисляется.
Обратите внимание как здесь формируется целая процедура и вставляется в модуль:
msg = "sub code" & vbCrLf & "msgbox cstr(" & _
a & ")" & vbCrLf & "end sub"
mo.CodeModule.InsertLines 1, msg
Попробуйте сделать таким образом что-то свое.
И еще. Мне не приходилось работать со связкой VBA - Excel,поэтому я не смогу вам помочь в этом плане.
Sub calc() Dim vv As VBE Set vv = VBE Dim mo As VBComponent Dim a As String a = InputBox("Simple Calculation") For Each mo In vv.ActiveVBProject.VBComponents If mo.Name = "ThisDrawing" Then mo.CodeModule.DeleteLines 1 mo.CodeModule.DeleteLines 1 mo.CodeModule.DeleteLines 1 Dim msg As String msg = "sub code" & vbCrLf & "msgbox cstr(" & _ a & ")" & vbCrLf & "end sub" mo.CodeModule.InsertLines 1, msg End If Next For Each mo In vv.ActiveVBProject.VBComponents If mo.Name = "ThisDrawing" Then Eval ("ThisDrawing.code") End If Next End Sub
Ничего не понял..))) Обсуждается VBE Excel?
Если речь идет о том, чтобы ввести в ячейку листа excel формулу, то это делается через свойство .formula или .localformula, если собираетесь вводить формулы на языке локализации. Свойство относится к объекту Range.
пример из help:
Worksheets("Sheet1").Range("A1").Formula = "=$A$4+$A$10"
В кавычках формируется любая формула (естесственно с учетом правил написания ссылок на ячейки, если они присутствуют, как в приведенном примере)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как вычислить формулу, данную как текст?
Форум работает на PunBB, при поддержке Informer Technologies, Inc